Elasticsearch match、term、filter、query的區別

term是表明徹底匹配,即不進行分詞器分析,文檔中必須包含整個搜索的詞彙web

match和term的區別是,match查詢的時候,elasticsearch會根據你給定的字段提供合適的分析器,而term查詢不會有分析器分析的過程elasticsearch

match查詢至關於模糊匹配,只包含其中一部分關鍵詞就行svg

match查詢會先對搜索詞進行分詞,分詞完畢後再逐個對分詞結果進行匹配,相對於term的精確搜索,match是分詞匹配搜索xml

使用場景排序

簡單來講,全文檢索和須要計算相關度得分來作排序的場景,使用query文檔

其餘狀況都使用filter過濾查詢it

  1. query查出來的結果包括數據表裏面符合條件的文檔信息以及相關度得分(_score)
  2. filter查出來的結果要麼是數據表裏面符合條件的文檔信息,要麼爲null,而且不會計算相關度得分

參考文章
https://www.jianshu.com/p/1263146a5387ast