2008-11-16 4 views
5

Ich habe die Volltextsuche für eine Website mit Lucene.NET (Version 2.0) implementiert. Indexierung und Suche funktioniert gut, aber ich habe ein Problem. Wenn ich nach Nummern (Telefonnummern, Produktnummern usw.) als Suchbegriffe suche, bekomme ich keine resultierenden Dokumente.Wie indexieren und finden Sie Zahlen mit Lucene.NET?

Ich verwende die Lucene.Net.Analysis.SimpleAnalyzer-Klasse. Ich denke, ich muss Analyzer und/oder Tokenizer wechseln.

Irgendwelche Ratschläge?

Vielen Dank!

Antwort

13

Wenn Sie ein Lucene-Dokument erstellen, können Sie für jedes Feld verschiedene Indizierungsoptionen auswählen. Für Felder, die nicht mit einem Token versehen werden sollen, müssen Sie die Option Field.Index.UN_TOKENIZED auswählen. So bleiben Ihre Telefonnummern und Produktnummern erhalten.

Ich würde auch empfehlen, den StandardAnalyzer zu verwenden, da er Zahlen wie SimpleAnalyzer nicht ausstreift.

Es ist auch wichtig, dass Sie denselben Analysator sowohl für die Indizierung als auch für die Suche verwenden, um konsistente Ergebnisse zu erhalten.