1

我添加了一个新字段,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-不存在/95626

有没有办法通过Lucene查询来做到这一点?带有 AND 的变体可以正常工作:https ://stackoverflow.com/a/50997638/10441689

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

4

2 回答 2

1

它通过在术语周围加上括号来为我工作:

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

请参阅:在 Kibana 6.8.0 搜索栏中无法使用“OR”和“NOT _exists_”

于 2020-10-14T15:26:31.677 回答
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 中,这将仅提供视觉概览。

这个链接将为如何进行 lucene 查询提供一个很好的指导。

于 2019-10-22T20:10:52.877 回答