2016-06-09 9 views
0

In schema.xml erklärte ich nur ein Feld mehrere Werte haben multiValued="true" verwenden, aber wenn ich die Antwort von *:* Abfrage sehen, erhalte ich die Werte für alle Felder innerhalb [] (sagen, dass das bestimmte Feld mehrwertig ist) Klammern außer das Feld id. Warum passiert es, kann mir bitte jemand sagen? U kann die Art der Antwort sehe ich bin immer unter:Warum werden alle Felder auf mehrwertig gesetzt, wenn ich in Solr nur ein Feld als mehrwertig einstelle?

{ 
     "id": "id1", 
     "name": ["name1"], 
     "gender": ["male"], 
     "number":["9898989898"] 
    } 

Und das ist, wie ich das Feld deklariert als mehrwertige in schema.xml:

<field name = "id" type = "string" indexed = "true" stored = "true" required="true"/> 
<field name = "name" type = "string" indexed = "true" stored = "true" required="true" multiValued="false"/> 
<field name = "gender" type = "string" indexed = "true" stored = "true" required="true" multiValued="false"/> 
<field name = "number" type = "string" indexed = "true" stored = "true" required="true" multiValued="true"/> 
+0

Sind Sie sicher, dass Ihre schame.xml verwendet wird (der Standard verwendet jetzt das verwaltete Schema)? Haben Sie nach dem Ändern des Schemas alle Dokumente gelöscht und neu indiziert? – MatsLindh

+0

Folgen Sie den Mats-Kommentaren, starten Sie solr, gehen Sie in das Admin-Tool (localhost: 8983) und verwenden Sie den Schema-Browser, um Ihre Felder zu betrachten. Wählen Sie Kern -> Schema-Browser -> Feld –

+0

Ich tat genau das Gleiche. Ich habe schema.xml geändert, den aktuellen Index gelöscht, solr gestoppt und neu gestartet. Und der Name ist schema.xml .. Ich verifizierte @MatsLindh. Ich habe keine Ahnung, warum es unerwartete Ergebnisse gibt. – Horcrux

Antwort

0

See my previous answer. Da es sich bei id um einen eindeutigen Schlüssel für das Dokument handelt, handelt es sich um eines der wenigen Felder, das nicht als mehrwertig im standardmäßigen "schemalosen" verwalteten Schema definiert ist.

Seit 5.x verwendet verwaltete Schema standardmäßig - wenn die richtige schema.xml-Datei nicht vorhanden war, wenn Sie Solr zum ersten Mal nach der Aktualisierung gestartet haben, könnte dies passieren. Sie können dieses Verhalten ändern, indem Sie das ClassicIndexSchemaFactory in Ihrem solrconfig.xml verwenden. Das Feld _version_ ist wegen der Solr-Interna erforderlich - es muss im Schema vorhanden sein, da es für Teilupdates verwendet wird (dh jemand anderes hat das Dokument aktualisiert, bevor Sie Ihre Teile eingereicht haben), SolrCloud-Modus (oh, ich habe bereits diese Version von einem anderen Knoten im Cluster) und das UpdateLog (keine Notwendigkeit, das, was bereits vorhanden ist, zu aktualisieren) .. und wahrscheinlich auch ein paar andere Funktionen.

Ein weiteres "magisches" Feld ist _root_, das zum Implementieren der untergeordneten Dokumentunterstützung verwendet wird.

Verwandte Themen