wake-up-neo.net

Solr Textfeld und Stringfeld - unterschiedliches Suchverhalten

Ich arbeite an Solr 4+.

Ich habe mehrere Felder in meinem Solr-Schema mit verschiedenen Solr-Feldtypen.

Unterscheidet sich die Suche nach Textfeld und Zeichenkettenfeld?

Weil ich versuche, nach Zeichenfolgenfeldern zu suchen (das ist ein Kopierfeld mit wenigen Facettenfeldern), die nicht wie erwartet funktionieren. Das Ziel-String-Feld wird indiziert und beide gespeichert.

Wenn ich jedoch das Zielfeld ändere, das ein Textfeld ist (nur indiziert), funktioniert es einwandfrei.

Können Sie vorschlagen, warum dies passiert? Was ist genau der Unterschied zwischen Text- und Zeichenkettenfeldern in solr in Bezug auf die Suche?

15
Ankita

TextFields ist normalerweise ein Tokenizer und eine Textanalyse beigefügt, was bedeutet, dass der indizierte Inhalt in separate Token aufgeteilt wird, bei denen keine exakte Übereinstimmung erforderlich ist. Jedes Wort/Token kann separat abgeglichen werden, um zu entscheiden, ob das gesamte Dokument in die Antwort aufgenommen werden soll .

StrFields kann keine Tokenisierung oder Analyse/Filter anwenden und liefert nur Ergebnisse für exakte Übereinstimmungen. Wenn Sie ein StrField mit angewendeten Analysen oder Filtern benötigen, können Sie dies mit einem TextField und einem KeywordTokenizer implementieren.

25
MatsLindh

Ein allgemeines Textfeld mit vernünftigen, generischen sprachübergreifenden Standardeinstellungen: Es wird mit StandardTokenizer als Token verwendet, wobei Stoppwörter aus "stopwords.txt" (standardmäßig leer) ohne Berücksichtigung der Groß-/Kleinschreibung und Groß-/Kleinschreibung entfernt werden. Nur zur Abfragezeit werden auch Synonyme angewendet.

Der StrField-Typ wird nicht analysiert, sondern wörtlich indiziert/gespeichert.

0
AsadKhan