Ich möchte, dass meine Lucene-Abfrage ähnlich wie folgt aussieht:
companyNam: Mercedes Trucks
Wo es eine genaue Übereinstimmung für die Zeichenfolge "mercedes trucks" im Feld companyName findet.
Der companyName ist ein nicht-akzentuiertes Feld, aber alles mit einem Leerzeichen gibt null Ergebnisse zurück.
Immer Ergebnisse 0, wenn ein Leerzeichen vorhanden ist. Ansonsten funktioniert mein Programm gut.
Verwenden Sie eine PhraseQuery wie folgt:
%Vor%Hoffe, das hilft!
Möglicherweise verwenden Sie während der Suche andere Analysatoren als die, mit denen Sie den Index erstellt haben.
Versuchen Sie es mit KeywordAnalyzer während der Suche. Es wird ein einzelnes Token des Suchstrings erstellen, was wahrscheinlich das ist, wonach Sie suchen.
Haben Sie darüber nachgedacht, eine PhraseQuery zu verwenden? Muss das Feld nicht erkannt werden? Ich glaube, dass nicht entnotiert ist für IDs usw. und nicht für Felder mit mehreren Wörtern als Inhalt.
Auch ich stehe vor dem gleichen Problem. Sie müssen die folgende Sache tun, um von diesem Problem loszuwerden. 1) Wenn Sie dem Dokument den Feldwert hinzufügen, entfernen Sie die Leerzeichen dazwischen. 2) Machen Sie den Feldwert in Kleinbuchstaben. 3) Machen Sie den Suchtext in Kleinbuchstaben. 4) Entfernen Sie die Leerstellen im Suchtext. Grüße ~ Shef
Tags und Links c# lucene.net