2017-01-23 5 views
1

Ich habe ein Integer-Feld in Solr schema.xml wie folgt definiert. <field indexed="true" multiValued="false" name="build_status" stored="true" type="TrieIntField"/> Und kopieren Sie das Feld definiert wie folgt mit booleschen Typ.DSE Solr: CopyField-Verhalten

<field name="build_status_b" stored="false" indexed="true" type="boolean" multiValued="false"/> <copyField dest="build_status_b" source="build_status"/>

I gesetzt build_status Wert, die ganze Zahl mit folgenden Werten ist. 0, 1, 45, 67 Seit meinem copyField - build_status_b vom Typ boolean, wurde erwartet, dass ich entweder Fehler oder Es wird 0 und 1 und Ignorieren 45 und 67, da diese Zahl nicht in Boolean Vertrag kommen. Interessanterweise könnte ich build_status_b: (0 1 45 67) mit allen Werten suchen. Wie funktioniert copyFields wirklich und wenn es indiziert, was auch immer Quellfeld enthält, was ist der Punkt Typ für Feld build_status_b zu deklarieren?

Antwort

0

Wenn Sie auf der folgenden doc Link auf der Wiki Solr schauen Sie werden sehen, dass der Boolesche Feldtyp diese Werte interpretiert einen Booleschen Wert zu bilden:

https://cwiki.apache.org/confluence/display/solr/Field+Types+Included+with+Solr

Enthält entweder wahr oder falsch. Werte von "1", "t" oder "T" im ersten Zeichen werden als wahr interpretiert. Alle anderen Werte im ersten Zeichen werden als falsch interpretiert.

Als Referenz heres die Solr-Dokumentation für Copyfields:

https://cwiki.apache.org/confluence/display/solr/Copying+Fields

Also für Ihre obigen Werte werden sie Vertreter der genannten boolean Äquivalente:

0 - false 
1 - true 
45 - false 
67 - false 
+0

Vielen Dank für die Markierung Erläuterung. Schätzen Sie Ihre Hilfe dazu. – akr