28_ElasticSearch誤拼寫時的fuzzy模糊搜尋技術
阿新 • • 發佈:2019-01-08
ElasticSearch誤拼寫時的fuzzy模糊搜尋技術
更多幹貨
一、概述
- fuzzy搜尋技術
- 搜尋的時候,可能輸入的搜尋文字會出現誤拼寫的情況
- 自動將拼寫錯誤的搜尋文字,進行糾正,糾正以後去嘗試匹配索引中的資料
- 糾正在一定的範圍內如果差別大無法搜尋出來
二、例子說明
搜尋的時候,可能輸入的搜尋文字會出現誤拼寫的情況
- fuzzy搜尋技術 --> 自動將拼寫錯誤的搜尋文字,進行糾正,糾正以後去嘗試匹配索引中的資料
初始化資料:
POST /my_index/my_type/_bulk { "index": { "_id": 1 }} { "text": "Surprise me!"} { "index": { "_id": 2 }} { "text": "That was surprising."} { "index": { "_id": 3 }} { "text": "I wasn't surprised."}
fuzzy 查詢,並設定糾正字數為2
GET/my_index/my_type/_search { "query": { "fuzzy": { "text": { "value":"surprize", "fuzziness":2 } } } }
- surprize --> 拼寫錯誤 --> surprise --> s -> z
- surprize --> surprise -> z -> s,糾正一個字母,就可以匹配上,所以在fuziness指定的2範圍內
- surprize --> surprised -> z -> s,末尾加個d,糾正了2次,也可以匹配上,在fuziness指定的2範圍內
- surprize --> surprising -> z -> s,去掉e,ing,3次,總共要5次,才可以匹配上,始終糾正不了
fuzzy搜尋以後,會自動嘗試將你的搜尋文字進行糾錯,然後去跟文字進行匹配
fuzziness,你的搜尋文字最多可以糾正幾個字母去跟你的資料進行匹配,預設如果不設定,就是2
GET/my_index/my_type/_search { "query": { "match": { "text": { "query":"SURPIZE ME", "fuzziness": "AUTO","operator":"and" } } } }
相關文章