我向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
。
答案 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查询提供良好的指导。