kibana 6 在查询使用match时,不仅会显示出精确匹配的结果,也会显示出相似匹配的结果
查询数字字段或者其他字段时,如果需要精确匹配,将关键词“match”改成“term"即可。
参考链接:https://www.elastic.co/guide/cn/elasticsearch/guide/current/_finding_exact_values.html
当查询文本字段时,由于es会自动将其切割成若干个token,如果当初在建立index时没有设置该字段为not_analyzed,按照上面的说法应该删除并且重建,但是这样有时会太过繁琐,我们可以使用match_phrase这个关键词代替。
比如我想要查询trans_id字段为”XXX"的精确匹配的结果:
GET /[your index]/_search
{
"query" : {
"match_phrase" : { "trans_id" : "XXX"}
}
}
这样我们就可以查询到精确搜索的结果了,如果想要再按照某个数值sort一下:
GET /[your index]/_search
{
"sort" : [
{
"[sort field]": "asc"
}],
"query" : {
"match_phrase" : { "trans_id" : "XXX"}
}
}
关于match_phrase标签的更多信息:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query-phrase.html