Kibana 6.4中如何搜索短横线(-)?求有效查询方案
在Kibana 6.4中搜索值为短横线(-)的文档解决方案
我之前也踩过这个坑!短横线(-)在Lucene的查询语法里是否定运算符,直接写会被当成排除条件,难怪你试了好几种写法都搜不到结果,下面给你几个亲测有效的解决办法:
方法一:使用
term精确匹配查询(推荐)
这种方法最靠谱,因为term查询会完全匹配字段的原始值,不会把短横线当成特殊语法解析。你可以在Kibana的Dev Tools里执行这个查询:GET /your_index/_search { "query": { "term": { "field_1": "-" } } }或者在Discover页面里,点击「添加过滤器」,选择
field_1,条件选「is」,然后直接输入-,Kibana会自动帮你生成对应的term查询。方法二:在搜索框里正确转义短横线
如果你习惯用Kibana搜索框的查询字符串语法,需要用双反斜杠\\来转义短横线(单个反斜杠会被浏览器/JSON解析吃掉),写法如下:field_1:\\-或者用引号包裹同时转义:
field_1:"\\-"注意:如果你的
field_1是text类型,默认分词器可能会忽略短横线,这时候建议用字段的keyword子字段来查询(比如field_1.keyword:\\-),前提是字段映射里有这个子字段。方法三:用
match查询指定keyword分词器
如果你需要用match查询,可以强制指定分词器为keyword,确保短横线被当成完整的词匹配:GET /your_index/_search { "query": { "match": { "field_1": { "query": "-", "analyzer": "keyword" } } } }
另外提醒一下:可以先去Management -> Index Patterns查看field_1的字段类型,如果是text类型,最好确认是否有对应的keyword子字段,用keyword类型的字段做精确匹配会更稳定哦!
内容的提问来源于stack exchange,提问作者Rafik Avtoyan
相关产品推荐
相关产品推荐

