Elasticsearch 2.3 has_child с запросом must_not.exists
86
9
Я пытаюсь построить запрос, в котором дети родителя фильтруются на основе кода страны в массиве. Если у ребенка нет поля стран, я все равно хочу вернуть результат.
У меня есть два рабочих запроса:
{
"query": {
"bool": {
"should": {
"has_child": {
"inner_hits": {},
"type": "service",
"score_mode": "sum",
"query": {
"bool": {
"filter": [
{
"term": {
"countries": "AF"
}
}
]
}
}
}
}
}
}
}
должным образом возвращает массив результатов, где "AF" находится в массиве стран и:
{
"query":
{
"bool": {
"should": {
"has_child": {
"inner_hits": {},
"type": "service",
"score_mode": "sum",
"query": {
"bool": {
"must_not": {
"exists": {
"field": "countries"
}
}
}
}
}
}
}
}
}
возвращает результаты, которые я хочу, если у ребенка нет поля стран.
Я не могу понять, как объединить эти два запроса, чтобы получить один комбинированный набор результатов. То есть я хочу "ИЛИ" два набора.
спросил(а)
2016-08-03T11:59:00+03:00
4 года, 7 месяцев назад
добавить комментарий
пожаловаться
Решение
121
На самом деле это не проверено, это слепое предложение:
{
"query": {
"bool": {
"should": {
"has_child": {
"inner_hits": {},
"type": "service",
"score_mode": "sum",
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"bool": {
"must": [
{
"exists": {
"field": "countries"
}
},
{
"term": {
"countries": "AF"
}
}
]
}
},
{
"missing": {
"field": "countries"
}
}
]
}
},
{
"term": {
"whatever": "blabla"
}
}
]
}
}
}
}
}
}
}
ответил(а)
2016-08-03T12:14:00+03:00
4 года, 7 месяцев назад
добавить комментарий
пожаловаться
Ваш ответ
Еще в рубрике
95
Может ли Lucene использоваться для хранения непрерывных потоков данных и действовать как хранилище данных для Google Analytics.!
86
Шина тестирования единицы измерения (Elastic Search) - Фильтрация результатов методом от to_indexed_json
96
Как определить разделенные индексы для разных журналов в Filebeat/ELK?
107
Обновите часть документа в Elasticsearch от Kafka
- Вопросы
- Elasticsearch
- Elasticsearch 2.3 has_child с запросом must_not.exists