我正在尝试在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
但是,当我同时尝试这两种情况时,都没有文档。

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

谢谢您的帮助 :)

最佳答案

下面的查询工程。使用kibana中的Inspect按钮查看实际触发了什么查询,并确保您也使用正确的索引模式。

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

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

07-24 09:39
查看更多