Grafana / ElasticSearch查询:等于值的字段或不存在的字段

时间:2018-10-01 15:23:42

标签: elasticsearch lucene grafana

我向Grafana添加了一个新字段,并希望进行以下Lucene查询,该查询将在缺少该字段时将其忽略:

!_exists_:field OR (_exists_:field AND field:value)

但是,即使简单的存在或不存在的Lucene查询似乎也不起作用,而ElasticSearch确实支持它:!_exists_:field1 OR _exists_:field2 https://discuss.elastic.co/t/how-to-do-where-field1-exists-or-field2-does-not-exist/95626

是否有一种使用Lucene查询的方法?使用AND的变体可以正常工作:https://stackoverflow.com/a/50997638/10441689

我想将其用于新的模板变量,该变量可能会丢失。我正在运行Grafana 5.2 / ElasticSearch 5.6

2 个答案:

答案 0 :(得分:1)

在括号内加上以下字词对我有用:

(!_exists_:field) OR (field:value)

请参阅:Cannot use "OR" with "NOT _exists_" in Kibana 6.8.0 search bar

答案 1 :(得分:0)

不确定我是否正确理解了您的问题,但是..

OR的lsv使rsv变得多余。

您尝试过

!field.yourFieldValue:* <-- that will NOT all of them.

!field.yourFieldValue:value <-- that will NOT all with a specific value.

我刚刚尝试了两种方法,它们都可以工作。

如果您使用Kibana,则不确定查询时的一件好事是先使用Kibana Discover,然后将查询复制/粘贴到Grafana中。 Kibana将为日志提供更好的概述(也许您会获得关于查询为什么不起作用的更好的概述),然后将其粘贴到Grafana中,这将仅提供视觉概述。

this link将为如何进行Lucene查询提供良好的指导。