Невозможно использовать «ИЛИ» с «НЕ _exists_» в строке поиска Kibana 6.8.0 - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь создать один запрос в строке поиска Kibana для получения некоторых конкретных документов. Цель состоит в том, чтобы получить документы, которые либо имеют поле «myDate» до 2019-10-08, либо «myDate» не существует. У меня есть документы, которые соответствуют одному или другому условию.

Я начал с создания этого запроса:

    myDate:<=2019-10-08 OR NOT _exists_:myDate

Но документы не были возвращены.

Поскольку это не помогло, я попробовал другие способы, которые я нашел в Интернете:

    myDate:<=2019-10-08 OR NOT (_exists_:myDate)
    myDate:<=2019-10-08 OR !(_exists_:myDate)
    myDate:<=2019-10-08 OR NOT (myDate:*)

Но, тем не менее, никаких результатов.

Когда я использую любую «часть» условия «ИЛИ», она работает отлично: я получаю либо документы с myDate <= 2019-10-08 или те, у которых не заполнено поле «myDate». </p>

Но когда я пытаюсь выполнить оба условия, я не получаю документ.

Я должен использовать только строку поискачтобы найти эти документы, не отправляйте запрос на поиск и не используйте эластичные фильтры.

Спасибо за помощь:)

1 Ответ

1 голос
/ 08 октября 2019

Ниже работает запрос. Используйте кнопку Inspect в kibana, чтобы увидеть, какой запрос на самом деле запускается, и убедиться, что вы используете правильный шаблон индекса.

(myDate:<=2019-12-31) OR (NOT _exists_:myDate)

Ознакомьтесь с Документация Query DSL для логических операторов для лучшего понимания с различными вариантами использования

...