Мне нужно сделать вложенный запрос, который пытается искать в массиве объектов. Помимо этого, у меня есть и другие параметры, по которым мне нужно искать. Я использую фильтры для тех. Как эффективно объединить фильтры и вложенный запрос? Извините, я не эксперт по ES.
Вот запрос, который я пытался выполнить в Кибане:
GET test-index/_search
{
"query": {
"bool": {
"filter": [
{
"term": {
"isPublic": true
}
},
{
"term": {
"isDeleted": false
}
}
]
},
"nested": {
"path": "data.location.countries",
"query": {
"bool": {
"must": [
{
"match": {
"data.location.countries.name": "United States"
}
},
{
"range": {
"data.location.countries.weight": {
"gt": 30
}
}
}
]
}
}
}
},
"size": "60",
"from": 0,
"sort": [
{
"followers": {
"order": "desc"
}
}
]
}
Возвращено с ошибкой:
{
"error": {
"root_cause": [
{
"type": "parsing_exception",
"reason": "[bool] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
"line": 17,
"col": 5
}
],
"type": "parsing_exception",
"reason": "[bool] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
"line": 17,
"col": 5
},
"status": 400
}
Может кто-нибудь пролить немного знаний по этому поводу?