如何搜索包含"?"的kibana(lucene语法)值

时间:2016-03-16 17:08:01

标签: elasticsearch lucene kibana

我正在使用ELK,我需要使用不匹配的COUNTRY(来自geoip)过滤所有文档

这些属性如下:

' IPCOUNTRY':' ??'

但我无法过滤这个特殊价值......

我试过

  • IPCOUNTRY:?? => ?评估>返回所有记录>正常情况 -
  • IPCOUNTRY:\ \? =>不会返回任何文件......但是lucene文档说它应该是实现这个目标的好方法......
  • IPCOUNTRY:" ??" =>不起作用
  • IPCOUNTRY:' ??' =>不起作用

编辑:

这种情况也不起作用 - IPCOUNTRY:/ [^ A-Z] {2} /

简单但无聊的问题^^

感谢名单!

3 个答案:

答案 0 :(得分:0)

你可以尝试:

  SELECT amount FROM mytable 
      WHERE 
     created_at >= '2011-12-01' 
       AND 
   created_at <= '2011-12-07'; 

如果您有一个未经分析的IPCOUNTRY字段,您可以执行以下操作:

 !IPCOUNTRY:"?"
 -IPCOUNTRY:"?"
 NOT IPCOUNTRY:"?"

答案 1 :(得分:0)

这是一个弹性搜索映射问题。标点符号被删除。您需要将您的字段设置为可保留的分析仪吗?可能关键字?还是没有分析?

摘自https://github.com/elastic/kibana/issues/6561#issuecomment-197951710

答案 2 :(得分:0)

如果您的所有字段都有与'IPCOUNTRY'相同的文档:'??',那么您可以直接过滤此字段,该字段将从匹配项中排除该字段。

要直接添加过滤器,您可以通过以下两种方式进行: -

  • 在“发现”页面中打开文本并找到该字段。单击+放大镜将该字段添加为过滤器。

  • 在“发现”页面中,列出字段的左侧。点击字段名称&amp;选择值portaying ??将其添加为过滤器。