一、基本情況

前言:term query和match query牽扯的東西比較多,例如分詞器、mapping、倒排索引等。我結(jié)合官方文檔中的一個(gè)實(shí)例,談?wù)勛约簩?duì)此處的理解

  • string類型在es5.*分為text和keyword。text是要被分詞的,整個(gè)字符串根據(jù)一定規(guī)則分解成一個(gè)個(gè)小寫的term,keyword類似es2.3中not_analyzed的情況。

string數(shù)據(jù)put到elasticsearch中,默認(rèn)是text。

NOTE:默認(rèn)分詞器為standard analyzer。"Quick Brown Fox!"會(huì)被分解成[quick,brown,fox]寫入倒排索引

  • term query會(huì)去倒排索引中尋找確切的term,它并不知道分詞器的存在。這種查詢適合keyword、numericdate

  • match query知道分詞器的存在。并且理解是如何被分詞的

總的來說有如下: