Identifique qué consulta coincide en bool query elasticsearch

Estoy consultando mi índice elasticsearch con una consulta bool . La consulta en sí tiene una estructura similar a esta

  { "query": { "bool": { "should": [ {"multi_match": { "fields": ["field1", "field2"], "query": self.cleaned_stemmed_phrase, "type": "phrase", "fuzziness":"AUTO" }}, {"multi_match": { "fields": ["field3"], "query": self.cleaned_stemmed_phrase, "fuzziness":"AUTO", "boost": 4 }}, {"multi_match": { "fields": ["field4"], "query": self.cleaned_stemmed_phrase, "fuzziness":"AUTO" }}, {"multi_match": { "fields": ["field5", "filed6"], "query": self.spaces_removed, "fuzziness":"AUTO" }}, {"multi_match": { "fields": ["field7", "field8"], "query": self.no_space_stems, "fuzziness":"AUTO" }} ] } } } 

Quiero poder identificar cuál de todas estas consultas fue la que coincidió con los resultados. ¿Hay un método incorporado de elasticsearch que permita esto o tengo que hacerlo manualmente?

Puede usar consultas con nombre y luego, en los resultados, obtendrá el nombre de la consulta que coincidió.

 { "query": { "bool": { "should": [ {"multi_match": { "fields": ["field1", "field2"], "query": self.cleaned_stemmed_phrase, "type": "phrase", "fuzziness":"AUTO", add name ---> "_name": "query1" }}, {"multi_match": { "fields": ["field3"], "query": self.cleaned_stemmed_phrase, "fuzziness":"AUTO", "boost": 4, add name ---> "_name": "query2" }}, {"multi_match": { "fields": ["field4"], "query": self.cleaned_stemmed_phrase, "fuzziness":"AUTO", add name ---> "_name": "query3" }}, {"multi_match": { "fields": ["field5", "filed6"], "query": self.spaces_removed, "fuzziness":"AUTO", add name ---> "_name": "query4" }}, {"multi_match": { "fields": ["field7", "field8"], "query": self.no_space_stems, "fuzziness":"AUTO", add name ---> "_name": "query5" }} ] } } } 

Luego, en los resultados, obtendrá una matriz de matched_queries con el nombre de las consultas que coincidieron con el documento.

 "_source": { ... }, "matched_queries": [ "title_query" ],