You can totally use a bool query with two should clauses, one for "match": {"name":tv sony"} and one for "match": {"name": "tabled samsung"} but I don't know of anything offhand that does the natural language parsing to figure out that that English sentence is actually two queries.
But I want a more generic query. Maybe by defined a score of each tags where the score is the distance between two words.
Here, the score of "tablet samsung" is better than "tablet-sony" because is more clothes.
I don't know something already written but if you are very adventurous you could implement a plugin to add a new query type. Have a look at match query. In particular what you are looking for is sort of like the phrase flavor of the match query but not quite because not all of the terms in the phrase have to be found.
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.