Ниже приведен запрос для поиска в ситуации, упомянутой в вопросе
{
"query": {
"bool": {
"filter": [
{
"nested":{
"path":"tags",
"query":{
"bool":{
"filter":[
{"term": {"tags.id": 21}}
]
}
}
}
},
{
"nested":{
"path":"tags",
"query":{
"bool":{
"filter":[
{"term": {"tags.id": 22}}
]
}
}
}
}
]
}
}
}
Ошибка, которую я делал, заключалась в размещении двух блоков совпадения под одним и тем же блоком фильтра.
"filter":[
{"term": {"tags.id": 21}},
{"term": {"tags.id": 22}}
]