kibana 6 查詢text字段時如何精確匹配

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章