Elasticsearch: сопоставлять только те поля дат, которые отсутствуют - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь вернуть список идентификаторов единиц, где поле даты равно None.

Пример ниже - просто фрагмент.Компания может иметь несколько сотен идентификаторов единиц, но я только хочу вернуть список активных единиц (где 'validUntil' - Нет).

'_source': {'company': {'companyId': 1,
                       {'unit': [{'unitId': 1,
                                  'period': {'validUntil': '2016-02-07' }},
                                 {'unitId': 2,
                                  'period': {'validUntil': None }}]

payload = {
    "size": 200,
    "_source": "company.companyId.unitId,
    "query":{
         "term":{
            "company.companyId": "1"
            }
        }
    }

Я пробовал несколько разных вещей (фильтр, must_not существует и т. Д.).), но либо поиски возвращают все идентификаторы устройства, относящиеся к идентификатору этой компании, либо ничего, что заставляет меня подозревать, что я не фильтрую правильно.

Формат даты - «dateOptionalTime», если это поможет.

1 Ответ

0 голосов
/ 11 февраля 2019

Похоже, что ваша проблема может быть не в самом запросе.
Насколько я знаю, вы не можете вернуть только часть массива, если его тип не является вложенным,
Я рекомендую посмотреть на этот вопрос: выбрать подходящие объекты из массива вasticsearch

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