Hier kann sich ändern, ist das, was ich den stemmer möchte tun: Bruch: Bruch brach: brechen gebrochen: break Eingabe: Geben Sie eingegeben: geben Sie eingeben: geben SieGibt es eine stemmer für Elasticsearch die „gebrochen“ zu „brechen“
ich das Feld indiziert haben, wie folgt: "Körper": { "type": "Text", "Felder": { "stammte": { "type": "Text", "Analysator": "Englisch" } } }
Wenn ich "brechen und eingeben" abfrage, kann ich sehen, dass im body.stemmed-Feld gesucht wird: "break and enter". Hört sich gut an. Wenn ich jedoch "pleite und eingegeben" abfrage, bekomme ich: "pleite und gehe". Somit wird "pleite" offensichtlich nicht "kaputt", wenn der "englische" Stemmer verwendet wird. In ähnlicher Weise wird "gebrochen und eingegeben": "gebrochen und geben". Also, ES ändert anscheinend nicht entweder "kaputt" oder "kaputt" in "kaputt" (was, nach diesem: snowball, ich schätze, erklärt warum, wenn das was verwendet wird).
Gibt es also eine Möglichkeit, einen "bekannten" Stemmer zu spezifizieren, der das erreicht, was ich versuche zu erreichen?
Ich folgte den Anweisungen für die Hunspell und es scheint nicht, um die Arbeit zu tun. Wenn ich nach "pleite und eingegeben" suche, bekomme ich (in der "explain" -Ausgabe): "description": "weight (doc.body.stemmed: \" kaputt und (enter enter) \ "in 45) [PerFieldSimilarity] , Ergebnis von: " –
Der beste Teil des hunspell Stemmer ist, Sie können Ihre eigenen Regeln hinzufügen. https://www.elastic.co/guide/en/elasticsearch/guide/current/hunspell.html#hunspell-dictionary-format –
Ich konnte dies durch Hinzufügen von Einträgen in eine * .dic-Datei erreichen, wie zum Beispiel: pleite st: Pause. Danke, dass Sie mich auf hunspell hingewiesen haben. –