天天看點

APP搜尋如何又快又準?

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

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

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

  • 查找使用者:根據輸入比對使用者昵稱,依據使用者屬性對搜尋結果進行排序;
  • 搜尋話題:根據使用者輸入比對話題,依據話題屬性對搜尋結果排序;
  • 搜尋文章:根據使用者輸入比對文章内容,依據内容屬性對搜尋結果排序;
  • 按照地理位置搜尋或推薦:根據使用者輸入位址資訊,轉換為經緯度,在一定距離範圍内比對話題、内容中的位址資訊,依據它們的屬性對搜尋結果排序。
APP搜尋如何又快又準?

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

● 基于資料庫的性能問題:

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

• 資料庫的查詢性能很難做到毫秒級,使用者搜尋體驗十分不好。

●基于資料庫的比對問題:

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

• 資料庫中無法過濾一些特殊字元,搜尋過程中如果使用者昵稱中有特殊字元,就會不準确。

● 基于開源搜尋引擎Elasticsearch的問題:

• 預設的BM25相關性打分排序無法確定搜尋結果的合理性;

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

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

APP搜尋如何又快又準?

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

▽ 整體實作方案

APP搜尋如何又快又準?

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

華為雲搜尋服務中搜尋方案優化:

● 支援自定義詞庫,使用者在詞庫中添加熱搜詞、關鍵詞、網絡常用詞等來提高搜尋輸入的比對精度;

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

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

APP搜尋如何又快又準?

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

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

● 因為使用者昵稱和内容、話題表達的含義不同,針對不同字段可以采取不同的分詞器,以便于提升比對精準度。具體作用見下表所示:

APP搜尋如何又快又準?

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

● 對于熱搜詞、關鍵詞、網絡常用詞,經常随時間變化,是以,我們采取使用者自定義詞庫的方式更新,來提高搜尋精準度。

APP搜尋如何又快又準?

總體而言,雲搜尋服務在網際網路APP的搜尋場景有如下的優勢:

● 一鍵化操作,無憂運維

所有主要操作都是一鍵可達,專業團隊貼身運維,快速實作搭建搜尋功能子產品;

● 靈活彈性

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

● 靈活詞庫管理

支援自定義詞庫與拼音分詞,支援詞庫熱更新,無需重新開機,配置即生效,對最終使用者無影響;

● 靈活分詞、靈活權重

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

● 高效實時檢索

毫秒級檢索結果傳回,新資料入庫後,即刻能被檢索到,提供良好的使用者體驗。

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

APP搜尋如何又快又準?

點選關注,第一時間了解華為雲新鮮技術~

繼續閱讀