Как искать документы в индексеasticsearch со значением в виде пустого массива для поля? - PullRequest
0 голосов
/ 12 сентября 2018

Мне нужно получить документы в индексе эластичного поиска, в которых есть пустой массив для поля (который может быть вложенным)?

Не работает

{
  "query": {
    "filter": {
      "script": {
        "script": "doc['arrayField'].length > 0"
      }
    }
  } 
}

, как описано ниже

{
  "query": {
    "bool": { 
      "must": { "match_all": {} },
      "filter": { "term": { "arrayField": [] }}
    }
  } 
}

Кажется, мне нужно использовать функцию фильтра вместе с некоторым сценарием, но не могу понять, как.

1 Ответ

0 голосов
/ 12 сентября 2018

Чтобы получить документы с пустым массивом, мы находим длину поля и видим, если его длина меньше 1. Пожалуйста, рабочий запрос ниже.

"query": {
        "bool" : {
            "must" : {
                "script" : {
                    "script" : {
                        "inline": "doc['arrayField'].length < 1",
                        "lang": "painless"
                     }
                }
            }
        }
    }

Дайте мне знать, если вы найдете какое-либовопросы.
Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...