What is the mapping of the fields you are searching? Based on your expected matches it looks like you may need to use a custom analyser that includes a stemmer.
Can you please use the get mapping API to show us the exact mapping of the 3 fields you are querying? This should allow you to verify that the fields you are querying actually have the mapping you showed.
Once you have done this you can use the analyze API to test how your analyzer tokenizes the various string you query with and expect to match.
It looks like you are not searching the keywords.name field which is the one with the custom analyser and instead are searching the keywords.keyword_values field, which uses the default analyser and has no stemmer.
Where are the mappings coming from? It looks like you have a duplicate name field definition (not valid JSON), which makes me suspect it is not part of the output from the get mappings API.
Here you can see that the two properties are named key_name and name, which is different from the previous post. To use the stemmer you need to query the keywords.name field and not keywords.key_name . The query you posted shows you querying keywords.key_value, which apparently does not exist.
If you are going to alter the output and not show real field names please make sure it is correct.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.