Frage

Ich habe ein Problem mit dem folgenden Feld mit dem folgenden Feldtyp:

generasacodicetagpre.

Wie Sie sehen, wendet es das "SnowballPorterFilterFactory" beim Indexieren und Abfragen an. Wenn ich so etwas indexiere, wie

Maus Sachen und Spaß

Es wird ergeben als:

Index-Aufschlüsselung in Solr

Wie Sie das Wort "Maus" sehen können, wird von der "SnowballPorterFilterFaktorie" in "Mous" verwandelt. Was wir wollen. Wenn wir jedoch nach

suchen

maus *

Es scheint das "SnowballPorterFilterFactory" nicht auf dieselbe Weise anzuwenden. Ich denke, wegen des * am Ende.

ALT=

Meine Frage ist. Also, wenn ich mich für

abfragen

maus *

Ich bekomme nicht 0 Treffer.

Interessanterweise, wenn ich für

abfragen möchte

mous *

Der Datensatz kommt zurück.

oder kann jemand einen besseren Weg, um diese Art von Feld abzufragen / index zu indexieren?

danke dave

War es hilfreich?

Lösung

aus dem FAQ : .

Im Gegensatz zu anderen Arten von Lucene-Abfragen, Wildcard, Präfix und Fuzzy-Abfragen werden nicht durch den Analysator übergeben, der die Komponente, die Operationen wie Stemming und Lowercasing erfüllt. Der Grund für das Überspringen des Analysators ist, dass Sie, wenn Sie nach "Hunden *" suchten, nicht "Hunde" wünschen, zuerst auf "Hund" stammt, da dies dann mit "Hund *" entspricht, was nicht die beabsichtigte Abfrage ist. Diese Abfragen sind eigentlich case-unempfindlich, da QueryparSer sie in Kleinbuchstaben bringt. Dieses Verhalten kann mit dem SetLowerCaseExPandedterms (Boolean) -Methode

geändert werden

Wenn es Ihnen gut geht, wenn Sie Ihre Solr-Quelle ändern, solr-757 Hat ein Patch angeschlossen, an dem Sie nützlich sein könnten. Ich kenne mich nicht, um diesen anderen als das Tauchen in die Quelle zu ändern.

Was könnte eine einfachere Idee sein: Habe einfach ein Kopierfeld, das nicht stemmisch ist. Der Benutzer kann beide Felder durchsuchen, und dann die Maus * stimmt mit dem nicht stemmenten Feld überein.

(edit: eigentlich, schau dir diesen patch an, bin ich nicht sicher, dass es das tun wird, was du willst. Im Grunde müssen Sie jedoch nur Ihren Abfrage-Handler ändern, um zuerst zu stammen.)

Andere Tipps

Letztes Mal prüfe ich, wenn Sie Platzhalter verwenden, wird der Abfrageanalysator nicht verwendet.Da Sie ein niedrigeres Tätigkeitsfaktorat verwenden, werden Ihre Begriffe in Kleinbuchstaben indexiert und nach MOUS suchen * Nehmen Sie nichts zurück.

Ich denke, das einzige, was Sie tun können, wenn Sie Platzhalter verwenden, ist, dass Ihre Anfrage Ihre Anfrage an die Art und Weise anpassen soll, wie Ihre Bedingungen indiziert sind (in gewisser Weise, was Ihr Abfrageanalysator dies tun würde).

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