日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

基于Elasticsearch实现搜索建议

發(fā)布時間:2025/6/17 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Elasticsearch实现搜索建议 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

搜索建議是搜索的一個重要組成部分,一個搜索建議的實現(xiàn)通常需要考慮建議詞的來源、匹配、排序、聚合、關(guān)聯(lián)的文檔數(shù)和拼寫糾錯等,本文介紹一個基于Elasticsearch實現(xiàn)的搜索建議。

問題描述

電商網(wǎng)站的搜索是最基礎最重要的功能之一,搜索框上面的良好體驗能為電商帶來更高的收益,我們先來看看淘寶、京東、亞馬遜網(wǎng)站的搜索建議。

在淘寶的搜索框輸入【衛(wèi)衣】時,下方的搜索建議包括建議詞以及相關(guān)的標簽:

在京東的搜索框輸入【衛(wèi)衣】時,下方搜索建議右方顯示建議詞關(guān)聯(lián)的商品數(shù)量:

在亞馬遜的搜索框輸入【衛(wèi)衣】時,搜索建議上部分能支持在特定的分類下進行搜索:

通過上述對比可以看出,不同的電商對于搜索建議的側(cè)重點略有不同,但核心的問題包括:

  • 匹配:能夠通過用戶的輸入進行前綴匹配;

  • 排序:根據(jù)建議詞的優(yōu)先級進行排序;

  • 聚合:能夠根據(jù)建議詞關(guān)聯(lián)的商品進行聚合,比如聚合分類、聚合標簽等;

  • 糾錯:能夠?qū)τ脩舻妮斎脒M行拼寫糾錯;

搜索建議實現(xiàn)

在我們的搜索建議實現(xiàn)里,主要考慮了建議詞的來源、匹配、排序、關(guān)聯(lián)的商品數(shù)量和拼寫糾錯。

SuggestionDiscovery

  • SuggestionDiscovery的職責是發(fā)現(xiàn)建議詞;

  • 建議詞的來源可以是商品的分類名稱、品牌名稱、商品標簽、商品名稱的高頻詞、熱搜詞,也可以是一些組合詞,比如“分類 + 性別”和“分類 + 標簽”,還可以是一些自定義添加的詞;

  • 建議詞維護的時候需要考慮去重,比如“衛(wèi)衣男”和“衛(wèi)衣 男”應該是相同的,“Nike”和“nike”也應該是相同的;

  • 由于建議詞的來源通常比較穩(wěn)定,所以執(zhí)行的周期可以比較長一點,比如每周一次;

SuggestionCounter

  • SuggestionCounter的職責是獲取建議詞關(guān)聯(lián)的商品數(shù)量,如果需要可以進行一些聚合操作,比如聚合分類和標簽;

  • SuggestionCounter的實現(xiàn)的時候由于要真正地調(diào)用搜索接口,應該盡量避免對用戶搜索的影響,比如在凌晨執(zhí)行并且使用單線程調(diào)用;

  • 為了提升效率,應該使用Elasticsearch的Multi Search接口批量進行count,同時批量更新數(shù)據(jù)庫里建議詞的count值;

  • 由于SuggestionCounter是比較耗資源的,可以考慮延長執(zhí)行的周期,但是這可能會帶來count值與實際搜索時誤差較大的問題,這個需要根據(jù)實際情況考慮;

SuggestionIndexRebuiler

  • SuggestionIndexRebuiler的職責是負責重建索引;

  • 考慮到用戶的搜索習慣,可以使用Multi-fields來給建議詞增加多個分析器。比如對于【衛(wèi)衣 套頭】的建議詞使用Multi-fields增加不分詞字段、拼音分詞字段、拼音首字母分詞字段、IK分詞字段,這樣輸入【weiyi】和【套頭】都可以匹配到該建議詞;

  • 重建索引時通過是通過bulk批量添加到臨時索引中,然后通過別名來更新;

  • 重建索引的數(shù)據(jù)依賴于SuggestionCounter,因此其執(zhí)行的周期應該與SuggestionCounter保持一致;

SuggestionService

  • SuggestionService是真正處于用戶搜索建議的服務類;

  • 通常的實現(xiàn)是先到緩存中查詢是否能匹配到緩存記錄,如果能匹配到則直接返回;否則的話調(diào)用Elasticsearch的Prefix Query進行搜索,由于我們在重建索引的時候定義了Multi-fields,在搜索的時候應該用boolQuery來處理;如果此時Elasticsearch返回不為空的結(jié)果數(shù)據(jù),那么加入緩存并返回即可;

POST?/suggestion/_search {"from"?:?0,"size"?:?10,"query"?:?{"bool"?:?{"must"?:?{"bool"?:?{"should"?:?[?{"prefix"?:?{"keyword"?:?"衛(wèi)衣"}},?{"prefix"?:?{"keyword.keyword_ik"?:?"衛(wèi)衣"}},?{"prefix"?:?{"keyword.keyword_pinyin"?:?"衛(wèi)衣"}},?{"prefix"?:?{"keyword.keyword_first_py"?:?"衛(wèi)衣"}}?]}},"filter"?:?{"range"?:?{"count"?:?{"from"?:?5,"to"?:?null,"include_lower"?:?true,"include_upper"?:?true}}}}},"sort"?:?[?{"weight"?:?{"order"?:?"desc"}},?{"count"?:?{"order"?:?"desc"}}?] }
  • 如果Elasticsearch返回的是空結(jié)果,此時應該需要增加拼寫糾錯的處理(拼寫糾錯也可以在調(diào)用Elasticsearch搜索的時候帶上,但是通常情況下用戶并沒有拼寫錯誤,所以建議還是在后面單獨調(diào)用suggester);如果返回的suggest不為空,則根據(jù)新的詞調(diào)用建議詞服務;比如用戶輸入了【adidss】,調(diào)用Elasticsearch的suggester獲取到的結(jié)果是【adidas】,則再根據(jù)adidas進行搜索建議詞處理。

POST?/suggestion/_search {"size"?:?0,"suggest"?:?{"keyword_suggestion"?:?{"text"?:?"adidss","term"?:?{"field"?:?"keyword","size"?:?1}}} }
  • 關(guān)于排序:在我們的實現(xiàn)里面是通過weight和count進行排序的,weight目前只考慮了建議詞的類型(比如分類 > 品牌 > 標簽);

實現(xiàn)效果和后續(xù)改進

  • 通過上面的實現(xiàn),我們已經(jīng)能實現(xiàn)一個比較強大的搜索建議詞了,實際的效果如下所示:

  • 后續(xù)可以考慮的改進:參考亞馬遜增加分類的聚合展示、增加用戶個性化的處理支持更好的建議詞排序、基于用戶的搜索歷史支持更好的建議詞推薦;

參考資料

  • Elasticsearch Prefix Query

  • Elasticsearch Suggester


轉(zhuǎn)載于:https://blog.51cto.com/8132260/2150787

總結(jié)

以上是生活随笔為你收集整理的基于Elasticsearch实现搜索建议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产欧美一区二区三区四区 | 成人在线视频免费观看 | 一区二区精品免费 | 黄色大片在线播放 | 欧美一区二区三区啪啪 | 男女草逼网站 | 精品亚洲乱码一区二区 | 韩国毛片一区二区 | 成人在线观看网站 | 亚洲久草视频 | 中文字幕一区二区视频 | 在线免费看91 | 又污又黄又爽的网站 | av成人在线免费观看 | 国产黄片一区二区三区 | 天天干,天天爽 | 少妇又色又紧又爽又刺激视频 | 国产 日韩 欧美 在线 | 久久白浆 | 五月婷婷激情 | 五月的婷婷 | 三级做爰第一次 | 国产精品夫妻 | 香蕉伊人 | av网站在线观看免费 | 夜夜嗨老熟女av一区二区三区 | 免费看毛片的网站 | 91视频成人 | 青青青青青草 | jizz欧美性23| 国产高潮在线观看 | 国产精品欧美亚洲 | 久久精品福利视频 | 亚洲av男人的天堂在线观看 | 免费成人av | 久久无码人妻精品一区二区三区 | 亚洲第一视频 | 日韩国产成人无码av毛片 | 日韩一级黄色大片 | 烈性摔跤| 日韩人妻无码精品久久久不卡 | 一二区精品| 成人在线国产视频 | 丁香网五月天 | 日韩精品免费一区二区三区竹菊 | 一级特黄特色的免费大片视频 | 校园激情亚洲 | 青娱网电信一区电信二区电信三区 | 爱爱小视频免费看 | 野花社区视频在线观看 | 美女诱惑av | 在线看黄色av | 天天插天天操 | 亚洲永久无码精品 | 蜜桃成人在线观看 | av网天堂 | 精品日韩欧美 | 国产色在线,com | 午夜久久一区 | 亚洲AV无码精品国产 | 银娇在线观看 | 精品三级国产 | 午夜三级福利 | 久久这里只有 | 韩国精品视频 | 亚洲成熟毛多妇女av毛片 | 国产在线观看一区二区三区 | 日韩精品一二三区 | 69av片 | 天天网综合 | 在线99热| 午夜精品在线播放 | 久久爱成人 | 9999re| 天降女子| 成人日韩 | 久久六六 | 欧美两根一起进3p做受视频 | 99精品中文字幕 | 亚洲视屏| 国产亚洲精品美女久久久 | 国产精品无码一区二区三区三 | 久草资源在线观看 | 国产精品久久久久久久久久小说 | 亚av| 亚洲 欧美 激情 另类 校园 | 国产v片 | 久久精品7 | 少妇99| 亚洲精品免费观看 | 日韩免费高清一区二区 | 国产三级在线 | 麻豆网站在线 | 成人无码精品1区2区3区免费看 | 国内成人av | 6080黄色 | 亚洲三区视频 | 欧美激情小视频 | 无套内谢大学处破女www小说 |