2016-11-04 1 views
0

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?

Antwort

1

Ihre Anforderung kann von einem Dictionary Stemmer erfüllt werden, der Dictionary-Lookups für Wortstämme durchführt. Algorithmische Stemmer stammen ohne Wissen über die Stammwörter, sie tun es einfach algorithmisch. Schauen Sie sich Hunspell stemmer, denke, es wird die Arbeit tun: https://www.elastic.co/guide/en/elasticsearch/guide/current/hunspell.html

+0

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: " –

+0

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 –

+1

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. –

Verwandte Themen