APP搜索如何又快又準?

摘要:搜索的概念深入人心,但做好一個體驗絕佳的搜索服務並不是一件容易的事。

本文分享自華爲雲社區《雲搜索服務在APP搜索場景的應用》,作者: 寫代碼的賀大師

搜索無處不在,尤其是在移動互聯的今天。無論是社交,電商,還是視頻等APP中,搜索都已經在其中扮演了重要的角色。作爲信息的入口,搜索能幫用戶從海量信息中找到想要的信息。在APP搜索的典型場景如下:

  • 查找用戶:根據輸入匹配用戶暱稱,依據用戶屬性對搜索結果進行排序;
  • 搜索話題:根據用戶輸入匹配話題,依據話題屬性對搜索結果排序;
  • 搜索帖子:根據用戶輸入匹配帖子內容,依據內容屬性對搜索結果排序;
  • 按照地理位置搜索或推薦:根據用戶輸入地址信息,轉換爲經緯度,在一定距離範圍內匹配話題、內容中的地址信息,依據它們的屬性對搜索結果排序。

事實上,儘管搜索的概念深入人心,但做好一個體驗絕佳的搜索服務並不是一件容易的事。在性能和搜索精度等細節上,都存在不可忽略的難點,而這些往往又是提升搜索體驗的關鍵。客戶難點如下:

 基於數據庫的性能問題:

• 數據一般都是分庫分表存儲在MySql數據庫中,搜索時存在關聯操作,查詢效率很低;

• 數據庫的查詢性能很難做到毫秒級,用戶搜索體驗十分不好。

基於數據庫的匹配問題:

•數據庫中,無法做到綜合考慮查詢條件的屬性後排序;

• 數據庫中無法過濾一些特殊字符,搜索過程中如果用戶暱稱中有特殊字符,就會不準確。

 基於開源搜索引擎Elasticsearch的問題:

• 默認的BM25相關性打分排序無法確保搜索結果的合理性;

• 簡單的分詞器對特殊字符處理不當。

舉個例子:搜索用戶“大海”時爲什麼大V用戶“kkw眼中de星辰大海”排在了“尋找那片大海”後面?

對於想要搭建APP搜索的客戶來講,從技術層面出發,實現方案如下。 華爲雲搜索服務是基於Elasticsearch, 能夠在毫秒級完成TB級檢索任務並返回結果,能夠很好解決傳統數據庫的性能問題。

▽ 整體實現方案

在雲搜索服務中,我們針對客戶的搜索痛點,做了如下優化,幫助客戶增強用戶體驗,提升效率,快速實現業務增長。

華爲 雲搜索服務中搜索方案優化:

● 支持自定義詞庫,用戶在詞庫中添加熱搜詞、關鍵詞、網絡常用詞等來提高搜索輸入的匹配精度;

● 支持自定義權重,用戶可以根據業務定義不同查詢條件的權重,來決定最終結果的排序;

● 支持越搜越準(規劃),雲搜索服務根據對搜索結果的點擊行爲,自動更新屬性權重,達到最終結果排序更精準的效果。

在雲搜索服務中,我們額外提供關於分詞和詞庫的解決方案,幫助客戶解決搜索精準度等問題。

雲搜索服務分詞、詞庫方案:

● 因爲用戶暱稱和內容、話題表達的含義不同,針對不同字段可以採取不同的分詞器,以便於提升匹配精準度。具體作用見下表所示:

● 採取使用簡繁體分詞器,還可以支持所有可搜索字段都能處理繁體字;

● 對於熱搜詞、關鍵詞、網絡常用詞,經常隨時間變化,因此,我們採取用戶自定義詞庫的方式更新,來提高搜索精準度。

總體而言, 雲搜索服務在互聯網APP的搜索場景有如下的優勢:

 一鍵化操作,無憂運維

所有主要操作都是一鍵可達,專業團隊貼身運維,快速實現搭建搜索功能模塊;

 靈活彈性

按需申請,在線擴容,輕鬆滿足業務增長需求;

 靈活詞庫管理

支持自定義詞庫與拼音分詞,支持詞庫熱更新,無需重啓,配置即生效,對最終用戶無影響;

 靈活分詞、靈活權重

不同字段使用不同的分詞方式,提高搜索準確率。不同條件設置不同權重,提高搜索精準度;

 高效實時檢索

毫秒級檢索結果返回,新數據入庫後,即刻能被檢索到,提供良好的用戶體驗。

大數據普惠創新包年75折起,MapReduce、數據倉庫、雲搜索、數據湖探索、數據可視化、數據湖治理中心助力企業釋放千行百業數據價值!參與活動,註冊即有紅包領取!更有機會參與抽獎贏好禮!

 

點擊關注,第一時間瞭解華爲雲新鮮技術~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章