我在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
.
通过在术语周围加上括号来为我工作:
(!_exists_:field) OR (field:value)
请参阅:不能在 Kibana 6.8.0 搜索栏中将"OR"与"NOT _exist_"一起使用
不确定我是否正确理解了您的问题,但是..
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 查询提供很好的指南。