Wenn ich Luke verwende, um meinen Lucene-Index mit einem Standardanalysator zu suchen, kann ich sehen, dass das Feld, nach dem ich suche, Werte der Form MY_VALUE enthält. Wenn ich nach Feld suche: "MY_VALUE" jedoch wird die Abfrage als Feld analysiert: "mein Wert"Lucene Suche und Unterstriche
Gibt es eine einfache Möglichkeit, den Unterstrich (_) zu entkommen, so dass es danach suchen wird?
EDIT:
4/1/2010 11:08 AM PST
Ich denke, es ist ein Fehler in dem tokenizer für Lucene ist 2.9.1 und es war wahrscheinlich dort vor. up Luke Laden und versuchen, für „BB_HHH_FFFF5_SSSS“, suchen, wenn es eine Zahl ist, werden die folgenden Token zurückgegeben:
„bb hhh_ffff5_ssss“
Nach einigen Tests habe ich festgestellt, dass dies wegen die Nummer. Wenn ich Eingang
„BB_HHH_FFFF_SSSS“, bekomme ich
„bb hhh ffff ssss“
An diesem Punkt bin ich auf eine tokenizer Bug lehnt es sei denn, das Vorhandensein der Zahl soll diese haben Verhalten, aber ich verstehe nicht warum.
Kann jemand das bestätigen?
Nein, ich habe den Standard-Analysator als Indexer verwendet, weshalb dies ist seltsam. – Matt
Wenn Sie mit dem Standard Analyzer indiziert haben, enthält Ihr Index "my" und "value" als zwei verschiedene Tokens. Versuchen Sie, nach "meinem Wert" zu suchen (einschließlich der Anführungszeichen) und Sie erhalten möglicherweise Ergebnisse. – Thomas
Ich würde überprüfen, welchen Analysator Sie für die Indizierung verwenden. Wenn Sie den StandardAnalyzer für die Indexierung verwendet haben, ist es unmöglich, MY_VALUE als Ausdruck zu verwenden, da StandardAnalyzer immer auf Unterstriche aufgeteilt wird. – bajafresh4life