2016-08-08 50 views
0

Ich bin dabei, von 4.7 auf 6.1 zu aktualisieren. Ich habe zuvor Felder in solrconfig.xml angegeben, wollte aber zum verwalteten Schema wechseln, damit ich JSON jederzeit mit neuen Feldern hinzufügen kann.Warum wandelt Solr 6.1 JSON-Einzelwerte in Arrays um?

Das Problem ist 6.1 verwaltete Schema wandelt Zeichenfolge Werte oder Zahlen usw. in Arrays. Dies führt zu einer fehlerhaften Sortierung, da Solr keine Array-Werte sortieren kann und meine einwertigen Daten in Arrays mit einem einzigen Wert umgewandelt werden können.

SolrConfig.xml 6.1 hat dies:

<processor class="solr.AddSchemaFieldsUpdateProcessorFactory"> 
    <str name="defaultFieldType">strings</str> 
    <lst name="typeMapping"> 
    <str name="valueClass">java.lang.Boolean</str> 
    <str name="fieldType">booleans</str> 
    </lst> 
    <lst name="typeMapping"> 
    <str name="valueClass">java.util.Date</str> 
    <str name="fieldType">tdates</str> 
    </lst> 
    <lst name="typeMapping"> 
    <str name="valueClass">java.lang.Long</str> 
    <str name="valueClass">java.lang.Integer</str> 
    <str name="fieldType">tlongs</str> 
    </lst> 
    <lst name="typeMapping"> 
    <str name="valueClass">java.lang.Number</str> 
    <str name="fieldType">tdoubles</str> 
    </lst> 
</processor> 

Ich habe versucht, die Datentypen singulären machen wie strings ->string aber das hat nicht funktioniert.

Danke!

Antwort

0

Felder bereits erstellt sind das Problem

(sorry meine eigene Frage zu beantworten, aber ich herausgefunden habe, die Antwort, bevor jemand anderes tat) funktioniert, aber

das obige Snippet zu singulären Datentypen ändern ...

Wenn Sie bereits Felder dynamisch mit einer anderen solrconfig.xml erstellt haben, dann laden Sie sie neu, um einzelne Felder zu haben, die Standardeinstellungen funktionieren wie erwartet, ABER Sie haben die vorhandenen bereits definiert.

Um dies zu beheben, entladen Sie den Kern, löschte es, neu erstellt, änderte die solrconfig.xml auf die gewünschten Einstellungen und fügte dann die Dokumente dort hinzu.

Es funktionierte danach gut.

UPDATE

Ich empfehle die Bearbeitung der manage-schema in /var/solr/data/CORE_NAME/conf gefundene Datei und vordefinieren Sie die Felder, um das Standardverhalten zu verlassen wollen. Sie können dies auch über die Admin-Oberfläche tun, indem Sie Felder hinzufügen.