Beim Versuch, von Solr 4.3.0 auf Solr 4.4.0 zu aktualisieren, bin ich auf diese Ausnahme gestoßen:
%Vor%was mich zu diesem Problem geführt hat. Ich muss in der Lage sein, Abfragen unabhängig von dazwischenliegenden Stoppwörtern (die früher mit enablePositionIncrements="true" gearbeitet haben) abzugleichen. Zum Beispiel: "foo of the bar" würde Dokumente finden, die "foo bar", "foo of bar" und "foo of the bar" entsprechen. Mit dieser in 4.4.0 veralteten Option ist mir nicht klar, wie ich dieselbe Funktionalität beibehalten soll.
Das Paket javadoc fügt hinzu:
Wenn der ausgewählte Analysator die Stoppwörter "is" und "the" filtert, werden für ein Dokument, das die Zeichenfolge "blue is the sky" enthält, nur die Token "blue", "sky" indiziert, mit Position (" sky ") = 3 + Position (" blau "). Nun würde eine Phrasenabfrage "blau ist der Himmel" dieses Dokument finden, da derselbe Analysator dieselben Stoppwörter aus dieser Abfrage filtert. Aber die Phrasenabfrage "blauer Himmel" würde dieses Dokument nicht finden, weil das Positionsinkrement zwischen "blau" und "Himmel" nur 1 ist.
Wenn dieses Verhalten nicht den Anforderungen der Anwendung entspricht, muss der Abfrageparser so konfiguriert werden, dass beim Generieren von Phrasenabfragen keine Positionsinkremente berücksichtigt werden.
Aber es wird nicht erwähnt, wie der Abfrageparser tatsächlich dafür konfiguriert werden soll. Weiß jemand, wie man mit diesem Problem umgeht, während sich Solr in Richtung 5.0 bewegt?
Ich weiß nicht, ob dies für die Verwendung empfohlen wird, aber es gibt noch einige Legacy-Klassen in Lucene 5, z. B. Lucene43StopFilter .
Leider scheinen sie in Lucene 6 verschwunden zu sein ...
Ich habe irgendwo im Netz eine Implementierung von RemoveTokenGapsFilterFactory
gefunden %Vor%