2010-11-19 5 views
0

Wir verwenden Lucene.Net (2.3.2.1) mit NHibernate.Search in unserem Produkt und ich fand ein sehr seltsames Verhalten in Bezug auf meine Fragen. Hier ist die Debug-Ausgabe von meinem thwo Test, um die Eingabeabfrage zeigt, und in der zweiten Zeile, was der Abfrage-Parser erzeugt, mit dem StandardAnalyser:Lucene.Net Abfrage Parser/Index Fehler?

Test 1 (Fehlern)

LastName:* AND IdentityType:A 
LastName:* 

vs. Test 2 (

Arbeits)
LastName:* AND IdentityType:F 
+LastName:* +IdentityType:f 

Wie Sie den einzigen Unterschied sehen können, ist „A“ gegen „F“ - i arround gespielt und könnte das gleiche Problem reproduzieren mit „AN“ „AS“ „uND“ - Gehäuse keine Rolle spielen , aber alle anderen Begriffe funktionierten, ich hatte das AND-Schlüsselwort im Kopf, also bin ich müde mit "O" "ODER", aber diese beiden arbeiten.

Für mich sah das aus wie ein Problem mit dem Query Parser ... aber jetzt habe ich auch einen tieferen Einblick in meinen generierten Index genommen und alle Entitäten, die ein "A" im IndentityType-Feld verwenden, werden nicht indiziert!

Ich wäre dankbar für jede Hilfe oder Hinweise zu diesem Thema.

freundlichen Grüßen Chris

Antwort

2

Die StandardAnalyzer eine Liste der Stoppwörter hat es verwendet, wenn der Text zu analysieren. Das "A" wird dadurch entfernt.

Versuchen Sie eine per field analyzer wrapper, zusammen mit a different analyzer für Ihre IndentityType Feld.

Auf einer administrativen Notiz, würde Sie wahrscheinlich schneller Antwort erhalten, wenn diese Frage wurden getaggt „Lucene“ statt nur „Lucene.net“ ...

Viel Glück,

+0

vielen Dank! Menge. Ich werde es versuchen –