How to filter out when query does not meet the condition of multiple field using only one query

Hi, I'm newbie of elasticsearch.

I have a website that receives one input query from a search box(typical website)
A user can search for a restaurant, which is a combination of 'region, restaurant name, menu type, ... etc'.
For example, they can search like 'Foo town Japanese food', 'Korean food', 'pasta'.

Say, there is no Japanese restaurant in Foo town, but if user search for 'Foo town Japanese food', then the result will come out.
Again, say the results are like 'P Japanese food (in other town)', 'Y Korean food(in Foo town) ... '
These results is undesirable.
How can I filter out cases that don't meet the criteria while still allowing different proper combinations of searches?

I'm also curious if it's right use case that I use elasticsearch to search for different combinations in only one query. I am considering whether to classify the search terms before execute the main query above.

Thanks for reading.
Any feedback would be invaluable.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.