Frage

Ich verwende Lucene.net 3.0.3, um den Inhalt von Word-, Excel- usw. Dokumenten und einigen benutzerdefinierten Feldern für jedes Dokument zu indizieren.
Wenn ich ein Feld namens indexiere "Titel" wie Field.index.not_analyzed Der Lucene-Index speicherte das Feld in korrekter Form. Der Lochtitel wird in einem einzigen Token gespeichert. Das ist, was ich will.

z.B Der Titel des Dokuments lautet "Lorem Ipsum Dolor"
Feld in Lucene-Index: "Lorem Ipsum Dolor"

Wenn ich in diesem Feld mit der genauen Suche suche, erhalte ich keine Ergebnisse.
Mein Suchterm sieht aus wie: Titel: "Lorem Ipsum Dolor"
Zum Suchen verwende ich denselben Standardanalalzer.

Warum kann ich das Dokument nicht finden?

War es hilfreich?

Lösung

StandardAnalyzer ist unter anderem auf Weißespace empfindlich. Das heißt, es tokenisiert den Suchbegriff in drei Token:

( Lorem, ipsum, dolor )

Aber Sie haben das Feld indiziert title Verwendung Field.Index.NOT_ANALYZED Keiner der drei oben genannten Token kann dem einzelnen Token in diesem Feld übereinstimmen:

( Lorem ipsum dolor )

Verwenden KeywordAnalyzer, was den gesamten Feldwert als einzelnes Token tokenisiert. Wie immer müssen Sie denselben Analysator sowohl für die Indexierung als auch für die Suche verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top