Я не могу понять, как обернуть операторы "query" для моего запроса в сложный вложенный объект, чтобы работать.
Я упростил концепции до следующего -
У меня есть индексс записями типа
{
"_index": "my_index",
"_type": "my_type",
"_id": "5",
"_source": {
"group": "student",
"user": [
{
"first": "Hubert",
"last": "Rock",
"grade": "B",
"address": "12 Hunting St"
}
]
}
}
Где «пользователь» - это вложенный объект.Теперь я хочу провести поиск, чтобы определить записи, которые имеют имя «Хьюберт», но не имеют записей в полях «класс» и «адрес».
Я мог бы сделать это отдельно - (Получитьвсе 'Hubert's)
GET my_index/_search
{
"query": {
"nested": {
"path": "user",
"query": {
"bool": {
"must": [
{ "match": { "user.first": "Hubert" }}
]
}
}
}
}
}
(Получить все записи, которые не имеют значений для' grade 'и' address ')
GET my_index/_search
{
"query": {
"nested": {
"path": "user",
"query": {
"bool": {
"must_not": [
{
"exists" : {
"field":"user.grade"
}
},
{
"exists" : {
"field":"user.address"
}
}
]
}
}
}
}
}
Но я действительно не знаю, как объединитьих.Есть идеи?