https://stackoverflow.com/questions/25537322/find-out-which-fields-matched-in-a-multi-match-query There is another exact way to find out which field is matched in the query Because the highlight is post highlight process, it is not accurate because of the way it did Just use named query to do it instead of multi-match such as { "multi_match" : { "query" : "query phrase here", "fields" : [ "name", "tag", "categorys" ], "operator" : "AND" } translate it into bool query with name "should": [ { "match": { "name": { "query": "query phrase here", "_name":"name_field" } } },{ "match": { "tag":{ "query": ...