I want to know how to stem adjectives that end with y (english). For example I want a search of "funky song" to match "funk song" higher than "random song". How do I do that? I have tried a few out-of-the-box stemmers but they are not doing it. So what do you guys do? Or am I doing something wrong and the out-of-the-box stemmers should be handling this?
I believe that stemmer or snowball should work.
What does the analyze API is returning ?
Analyzing funky returns:
curl -XGET 'localhost:9200/main_search/_analyze' -d ' { "analyzer" : "snowball_analyzer", "text" : "funky" }' {"tokens":[{"token":"funki","start_offset":0,"end_offset":5,"type":"<ALPHANUM>","position":0}]}
and analyzing funk returns:
curl -XGET 'localhost:9200/main_search/_analyze' -d ' { "analyzer" : "snowball_analyzer", "text" : "funk" }' {"tokens":[{"token":"funk","start_offset":0,"end_offset":4,"type":"<ALPHANUM>","position":0}]}
Using stemmer instead of snowball does the same thing.
Indeed terms are differents. Not sure why.
May be funk means something else in English than funky?
May be snowball would produce better results?
https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-snowball-tokenfilter.html
This happens also with leak and leaky and both words are used in documents I am indexing I'll try the snowball filter and not the analyzer and post the results.
Ok, thanks for the suggestion! The Lovins language snowball filter works. Thanks
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.