天天看點

ElasticSearch模糊查詢(中文檢索)

# "*" 表示比對任意字元
GET /lib4/user/_search
{
  "query": {
    "wildcard": {"name": "趙*"}
  }
}

# "?" 表示比對任意一個字元
GET /lib4/user/_search
{
  "query": {
    "wildcard": {"name": "li?i"}
  }
}
           

 fuzzy實作模糊查詢

uzzy 查詢是 term 查詢的模糊等價。

a、是 包含(contains) 操作,而非 等值(equals) (判斷)。

b、不知道分詞器的存在,是以不會去分詞,

c、所謂的包含是文檔分詞結果某個分詞是否包含,不是整個文檔是否包含

d、因為是在分詞結果中比對,是以大寫要轉換為小寫,大寫字母是比對不到

value:查詢的關鍵字

boost:查詢的權值,預設值是1.0

min_similarity:設定比對的最小相似度預設值為0.5, 對于字元串,取值為0-1(包括0和1);對于數值,取值可能大于1;對于日期型取值為1d,1m等,1m代表一個月  1d就代表1天

prefix_length:指明區分詞項的共同字首長度,預設是0

max_expansions:查詢中的詞項可以擴充的數目,預設可以無限大

GET /lib4/user/_search { "query":{ "fuzzy":{ "interests":"唱歌" }}}

GET /lib4/user/_search { "query":{ "fuzzy": { "interests":{ "value":"喝酒" }}}

GET /lib4/user/_search
{
  "query": {
    "fuzzy": {
      "interests": {"value": "喝酒"}
    }
  }
}
           

繼續閱讀