Each filter can accept a _name in its top level definition, for example:
{
"filtered" : {
"query" : {
"term" : { "name.first" : "shay" }
},
"filter" : {
"terms" : {
"name.last" : ["banon", "kimchy"],
"_name" : "test"
}
}
}
}
The search response will include for each hit the matched_filters it matched on (note, this feature make sense for or / bool filters).
Note, the query filter had to be enhanced in order to support this. In order to set a name, the fquery filter should be used, which wraps a query (just so there will be a place to set a name for it), for example:
{
"filtered" : {
"query" : {
"term" : { "name.first" : "shay" }
},
"filter" : {
"fquery" : {
"query" : {
"term" : { "name.last" : "banon" }
},
"_name" : "test"
}
}
}
}