在Kibana 6.8.0搜索栏中无法将“ OR”与“ NOT _exists_”一起使用

时间:2019-10-08 12:20:04

标签: elasticsearch kibana dsl

我正在尝试在Kibana搜索栏中创建一个查询以检索某些特定文档。 目标是获取在2019-10-08之前具有字段“ myDate”或不存在“ 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:*)

但仍然没有结果。

当我使用“ OR”条件的任何“部分”时,它都可以正常工作:我得到的文档具有myDate <= 2019-10-08或没有填写“ myDate”字段的文档。

但是当我同时尝试这两种情况时,我都没有文档。

我只需要使用搜索栏来查找这些文档,既不能使用elasticsearch rest查询,也不必使用kibana过滤器。

谢谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

以下查询有效。使用kibana中的Inspect按钮可查看实际触发了哪些查询,并确保您还使用了正确的索引模式。

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

看看Query DSL documentation for Boolean operators可以更好地了解不同用例