Ниже запрос, что требуется.
POST my_index/_search
{
"query": {
"bool": {
"must": [
{
"nested": {
"path": "user",
"query": {
"match": {
"user.firstname": "alice"
}
}
}
},
{
"nested": {
"path": "user",
"query": {
"match": {
"user.firstname": "john"
}
}
}
}
]
}
}
}
Обратите внимание, как я использовал два вложенных запроса в одном предложении must. Это потому, что если вы заметите, что документы, которые у вас есть alice
и john
, считаются two different documents
.
Ваш запрос будет работать, если ваша структура документа будет выглядеть примерно так:
POST my_index/_doc/3
{
"user" : [
{
"firstname" : ["Alice", "John"]
}
]
}
Попробуйте прочитать this (вложенный тип данных) и this (вложенный запрос) ссылку, чтобы узнать больше о том, как они работают, и по второй ссылке вы можете увидеть ниже информацию:
Вложенный запрос ищет вложенные объекты полей, как если бы они были проиндексированы как отдельные документы.
Надеюсь, это поможет!