Elasticsearch 6.3. Let's assume I have an index called
food (I would like to keep it as one index), which stores a name in two languages. For now I have search that can considers both full (scored higher) and ngram results of chosen languages - basically a
bool query with
shoulds for full/ngram fields in chosen languages. E.g. full
apple is scored higher than ngram
Now I would like to add a possibility for the user to append predefined type words while keeping the score of full/ngram results. For example
fruit apple should have the same (or at least very similar) score as mentioned
apple, similar thing for
meat bac with the same score as
One could say I could just strip
fruit before passing it to the Elasticsearch query, but the problem is that there could be
fruit of whatever tree record too.
So, what would be the recommended way of dealing with this? I'm sure that adding an additional analyzer to both full field and ngram field, but which one would be the most suitable one? I looked through all and the most suitable one looks like synonyms, but if I'm not mistaken I would need to add a synonym for each word separately, is there anything else I'm missing? The type field is also indexed (in one language for now, but I can add the second), so it could be used, if possible.