介紹
介紹
我們在使用elastic search進行搜尋的時候,會需要對搜尋結果進行調整,以達到最佳效果
今天就跟著福哥來了解一下ES的匹配模式的知識吧
教程match(全文匹配)
這種方式就是根據預設規則進行匹配,並根據預設權重進行排序的
{ "from": 0, "size": 10, "query": { "bool": { "must": { "match": { "userName": "福哥" } } } }}
minimum_should_match(匹配度匹配)
分詞個數匹配度
設定最小匹配度為1,表示只要有一個分詞命中就匹配出來
如果匹配度數字設定過大,會出現大量查詢不到結果的情況
{ "from": 0, "size": 10, "query": { "bool": { "must": { "match": { "userName": { "query":"福哥", "minimum_should_match": 1 } } } } }}
百分比匹配度
設定最小匹配度為50%,表示只要有一半的分詞命中就匹配出來
如果匹配百分比設定接近100%,會出現大量查詢不到結果的情況
{ "from": 0, "size": 10, "query": { "bool": { "must": { "match": { "userName": { "query":"福哥", "minimum_should_match": "50%" } } } } }}
組合匹配度
設定組合匹配度3<80%,這個有點複雜,分兩種情況
如果不高於下限(3)則下限(3)和上限(80%)都要判斷
如果高於下限(3)則只有上限(80%)會被判斷
{ "from": 0, "size": 10, "query": { "bool": { "must": { "match": { "userName": { "query":"福哥", "minimum_should_match": "3<80%" } } } } }}
match_phrase(精確匹配)
這種方式就是需要查詢字串完全在目標字串當中才行,類似SQL的(like '%福哥%')意思
https://m.tongfu.net/home/35/blog/512639.html
最新評論