Elasticsearch 實現(xiàn)模糊搜索

1、match query實現(xiàn)模糊搜索,該方式會對匹配文本進(jìn)行分詞然后匹配分詞后的每個詞項,匹配操作有OR和AND,默認(rèn)為OR

{
  "query": {
    "match": {
      "text": {
        "query":     "hello world",
        "fuzziness": "AUTO",
        "operator":  "and"
      }
    }
  }
}

查詢字符串首先進(jìn)行分析,會產(chǎn)生詞項 [hello,world] ,并且每個詞項根據(jù)指定的 fuzziness 進(jìn)行模糊化。如果match query所查詢的字段為keyword類型則不會進(jìn)行分詞,等同term精確匹配查詢。

2、match phase query實現(xiàn)模糊搜索,該方式不會對匹配文本進(jìn)行分詞,能夠在text類型的字段上進(jìn)行數(shù)據(jù)庫like的匹配效果。

{
  "query": {
    "match_phrase": {
      "message": "this is a test"
    }
  }
}

3、fuzzy query實現(xiàn)模糊搜索,fuzzy 查詢是一個詞項級別的查詢,所以它不做任何分析。它通過某個詞項以及指定的 fuzziness 查找到詞典中所有的詞項。 fuzziness 默認(rèn)設(shè)置為 AUTO 。

{
  "query": {
    "fuzzy": {
      "text": "surprize"
    }
  }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容