【问题标题】:Cannot use "OR" with "NOT _exists_" in Kibana 6.8.0 search bar不能在 Kibana 6.8.0 搜索栏中将“OR”与“NOT _exists_”一起使用
【发布时间】:2019-10-08 12:20:04
【问题描述】:

我正在尝试在 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

但是当我同时尝试这两个条件时,我没有得到任何文件。

我必须只使用搜索栏来查找这些文档,既不是弹性搜索休息查询,也不是使用 kibana 过滤器。

感谢您的帮助:)

【问题讨论】:

    标签: elasticsearch kibana dsl


    【解决方案1】:

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

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

    查看Query DSL documentation for Boolean operators 以更好地理解不同的用例

    【讨论】:

    • 谢谢,现在可以了!我发现myDate:&lt;=2019-12-31 OR (NOT _exists_:myDate) 也可以。
    猜你喜欢
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 2018-05-14
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多