開放搜尋查詢分析服務架構解讀
簡介:搜尋行為在後端都會有大量的資料計算和處理才會召回符合使用者需求的搜尋結果,本次分享結合自建搜尋業務中查詢分析服務常見的問題及難點,介紹阿里雲開放搜尋查詢分析具備的能力及解決方案,並深度解讀阿里巴巴查詢分析服務架構和相容Elasticsearch的架構是如何實現的
特邀嘉賓:
項招貴(項公)--阿里巴巴高階技術專家
視訊地址:
查詢分析介紹
查詢分析在搜尋中的作用
在搜尋請求的處理過程中可以在工程實現上分為兩個階段,召回和排序。在召回階段需要儘可能的把使用者想要的文件在引擎中找到,在排序階段需要將最滿足需求的文件排在最前面去返回給使用者。
通過查詢分析可以快速進行處理和分析,比如,往往在實際的生產環境中,使用者往往會有一些錯誤的輸入,需要進行query糾錯。 其次我們需要對query分詞並且識別其中不同詞的重要程度,這有助於我們在召回和排序中去使用。 同時由於實際的環境中存在一詞多意,所以要進行同義詞的擴充套件。 其次需要對使用者的query進行改寫去幫助引擎更高效的去執行召回。在query處理的階段,會輸出一些資訊去以幫助我們在排序時候跟文件去算一些文件的相關性、類目相關性、以及通過一些將文字進行向量化去算它的語義相關性等。
查詢分析鏈路
總的來說,查詢分析的作用就是對使用者輸入的query進行分析和改寫,去提升我們系統的召回的準確率和排序的相關性。 下面通過簡單的例子介紹開放搜尋的查詢分析的功能。
自建搜尋服務面臨的問題
- 需要行業領域知識不斷積累;
- 缺少大量行業樣本資料,自研難度大;
- 演算法調優、工程開發、日常運維需要持續的人力投入;
開放搜尋查詢分析特點
- 面向行業提供完整的查詢分析解決方案
針對特定領域提供演算法功能,以及對某些特定的演算法功能進行優化。例如,電商行業,開放搜尋提供了實體識別。教育行業,往往不僅是文字,也有可能是副文字或圖片,所以對query進行了一個文字向量化的功能。有些功能在不同的行業裡面我們也會針對性的去做優化,像拼寫糾錯或同義詞的挖掘等等。
- 查詢分析每一個功能均可干預
干預是實時生效的, 包含實體識別、拼寫糾錯、停用詞、詞權重,同義詞,類目預測等。
- 輕量化的去定製服務
根據客戶不同的業務場景去配置他的查詢分析的能力,開放搜尋提供這些能力功能的全集,使用者可以根據實際需求選擇其中一部分能力在實際生產環境中使用。 其次支援使用者使用多種不同型別的查詢分析,或者說是不同的查詢分析的配置。
- 免運維
免除使用者日常的運維的持續的投入。
查詢分析服務架構
演算法服務中心
- 演算法功能的釋出,迭代;
- 使用者模型的增刪改查;
- 演算法模型的訓練;
- 演算法模型的迴流;
干預功能
- 使用者干預資料的增刪改查;
- 實時同步干預資料到查詢分析服務中;
查詢分析和類目預測服務
- 載入詞典、模型、資料、配置;
- 不同行業通過不同的服務鏈配置來實現;
- 載入使用者干預資料;
查詢過程
- 根據使用者配置的功能執行對應的查詢分析鏈;
- 改寫的query發給引擎執行查詢;
DIIRuntime框架
- 支援多種不同型別的索引,滿足演算法對各種不同型別資料的高效訪問;
- 索引構建、分發、載入、查詢統一,降低開發和運維成本;
- 鏈式服務框架,靈活組鏈,支援不同場景的功能;
- 演算法開發只需要關注演算法功能本身邏輯的實現,簡單快捷;
Elasticsearch相容架構
開放搜尋Elasticsearch引擎查詢分析功能
- 基本對齊開放搜尋的查詢分析能力;
- 具備行業分詞能力
- 可干預
- 支援擴充套件分詞
- 具備行業查詢分析能力
- 可配置
- 可干預
實現架構
1.建立例項
- 建立開放搜尋例項,關聯Aliyun Elasticsearch的例項
- 安裝外掛
2.配置查詢分析
- Mapping中設定使用響應的分析器
- 外掛功能
- 提供通用、行業的分詞能力
- 訪問查詢分析服務,獲取query改寫結果
- 改寫Elasticsearch的查詢query
原文連結
本文為阿里雲原創內容,未經允許不得轉載。