Wir verwenden derzeit Lucene 2.1.0 für unsere Website-Suche und wir haben ein schwieriges Problem: eines unserer Indexfelder wird bei einer gezielten Suche ignoriert. Hier ist der Code für das Hinzufügen des Feldes zu einem Dokument in unserem Index:Fehlerbehebung bei Java Lucene Ignorieren von Feld
// Add market_local to index
contactDocument.add(
new Field(
"market_local"
, StringUtils.objectToString(
currClip.get(
"market_local"
)
)
, Field.Store.YES
, Field.Index.UN_TOKENIZED
)
);
Ausführen einer Abfrage (*) gegenüber dem Index die folgenden Ergebnisse werden zurückgegeben:
Result 1:
title: Foo Bar
market_local: Local
Result 2:
title: Bar Foo
market_local: National
eine gezielte Abfrage ausgeführt wird:
+(market_local:Local)
werden keine Ergebnisse finden.
Ich weiß, dass dies eine sehr spezifische Frage ist, ich versuche nur Informationen darüber zu bekommen, wo ich dieses Problem debuggen kann, da ich ein Lucene-Neuling bin.
UPDATE
installierte Luke, neuesten Index Check-out ... das Field market_local bei der Suche zur Verfügung steht, so dass, wenn ich etwas ausführen wie:
market_local:Local
Die Suche funktioniert richtig (in Lukas). Ich gehe jetzt unseren Analyzer-Code durch. Kann ich dieses Problem auf die Tatsache ansprechen, dass unsere Suchanwendung Lucene 2.1.0 verwendet und die neueste Version von Luke 2.3.0 verwendet?
Meine Augen bluten ... Luke ist hässlich! (Aber es macht den Trick. Danke. +1) – DerMike