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