Название вопроса не полностью оправдывает то, что мне нужно.У меня есть вложенный документ в форме
{
"tags": [
{
"context": "context_pic_elements",
"name": "walls",
"created_at": 1542806972000,
"tag_id": 48,
"tagging_id": 1225
},
{
"context": "element",
"name": "solo",
"created_at": 1542806972000,
"tag_id": 47,
"tagging_id": 1226
},
{
"context": "end_use",
"name": "home renovation",
"created_at": 1542806972000,
"tag_id": 45,
"tagging_id": 1224
}
],
"name": "Wall patterns",
}
Документ сопоставлен с
{
"properties": {
"name": {
"type": "text"
},
"tags": {
"type": "nested",
"properties": {
"name": { "type": "keyword" },
"context": { "type": "keyword" },
"tag_id": { "type": "integer" }
}
}
}
}
Я хочу иметь возможность запросить изображение в виде
images WHERE
(tags.context="context_pic_elements" AND tags.name="walls")
OR (tags.context="element" AND tags.name="solo")
Я сейчас пытаюсь выполнить запрос
{
"query": {
"nested" : {
"path" : "tags",
"query": {
"bool": {
"should" : {
"bool": {
"must": [
{"term": {"tags.context": "context_pic_elements"}},
{"term": {"tags.name": "walls"}}
]
}
}
}
}
}
}
}
Это позволяет мне запросить первое условие предложения AND.Куда я добавляю второе условие AND (эластичный поиск не позволяет более одного условия в своем запросе) в запросе, чтобы я мог выполнить запрос по обоим условиям.Я посмотрел на зеркальный комбинатasticsearch bool must с OR , но это не то, что мне нужно.