我正在尝试在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过滤器。
谢谢您的帮助:)
答案 0 :(得分:1)
以下查询有效。使用kibana中的Inspect
按钮可查看实际触发了哪些查询,并确保您还使用了正确的索引模式。
(myDate:<=2019-12-31) OR (NOT _exists_:myDate)
看看Query DSL documentation for Boolean operators可以更好地了解不同用例