SOIRs SnowballporterFilterFactory- und Wildcard-Parameter
-
28-09-2020 - |
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:
Wie Sie das Wort "Maus" sehen können, wird von der "SnowballPorterFilterFaktorie" in "Mous" verwandelt. Was wir wollen. Wenn wir jedoch nach
suchenmaus *
Es scheint das "SnowballPorterFilterFactory" nicht auf dieselbe Weise anzuwenden. Ich denke, wegen des * am Ende.
Meine Frage ist. Also, wenn ich mich für
abfragenmaus *
Ich bekomme nicht 0 Treffer.
Interessanterweise, wenn ich für
abfragen möchtemous *
Der Datensatz kommt zurück.
oder kann jemand einen besseren Weg, um diese Art von Feld abzufragen / index zu indexieren?
danke dave
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.
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).