我正在尝试在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可以更好地理解不同用例