一淘網的系統架構

http://www.biaodianfu.com/etao-architecture.html


一淘網是淘寶推出的一款購物搜索引擎,目前主要是由四部分組成:購物相關資訊的文本搜索-導購、基於opensearch的全網商品搜索-商品、購物社區-淘吧、問答搜索、全網搜索(目前使用的是其他搜索引擎公司的系統、自己公司的也有,但不是默認項)。

導購搜索的目的是要將購前分流至各大垂直網站查找資訊的流量聚合,並且從百度和Google手中把搜索購物資訊的流量搶過來。但侷限是內容可讀性不如垂直網站,覆蓋率不如全網搜索引擎。即使這兩樣逐漸追趕上改變用戶習慣也是一條很漫長的路。

商品搜索是一淘網最核心的部分,當垂直類B2C逐漸強大,一淘網要做的是打造一個購物入口。這次淘寶、一淘、淘寶商城的分拆,也是爲了給一淘網一個全新的定位。商品搜索主要是數據源的問題,如果淘寶又有購物平臺、又想購物入口相信很難得到B2C網站的信任。

淘吧是整個購物環節的最後一步,購物後的交流分享社區。目前不是非常的好,主要是裏面不可避免的含有大量的廣告。

一淘的系統架構如上圖所示。可以看到,一淘有三個數據來源:互聯網、外部合作方和淘寶主站。其中,互聯網數據通過crawl的方式獲得,而後兩者則通過feed的方式提供。

抓取系統的功能包括:網頁抓取、抓取調度、域名解析、死鏈檢測、JavaScript執行等。目前,一淘的資訊、話題、問答combo中的大部分數據都是通過抓取系統從互聯網獲得的。它是一淘一個重要的“原料廠”。

離線處理系統是一個功能衆多、可靈活定製的Pipeline,其主要功能有:網頁編碼識別與轉換、網頁解析與內容抽取、購物相關站點發現、列表頁識別、網頁分類與消重、鏈接提取與合併、關鍵詞提取、衆多網頁靜態feature的提取。它是一淘的“加工廠”。

存儲系統負責存儲抓取系統和離線處理系統的產出,同時向這兩個“廠”提供高性能、大容量的存取服務。目前我們採用的是Hadoop+HBase的體系結構,將網頁、鏈接、圖片進行了分類存放。存儲系統是一淘存放原料、半成品的“核心倉庫”。

在線引擎負責對一淘前端搜索請求返回查詢結果,它生成索引的數據來自存儲系統。在線引擎是一淘面向用戶的“成品生產車間”。值得一提的是,一淘採用了阿里集團新一代的HA2引擎技術,HA2結合了開源引擎和阿里上一代引擎技術的設計優點,在支持全文檢索的同時,兼備了商品搜索的各種功能。它目前提供的主要特性有:

  • 數據規模:支持的數據規模從一臺機器(partition)到幾百臺機器;
  • 更新速度:支持全量數據更新,以及最快支持分鐘級的增量更新;
  • 數據類型:允許用戶定義各種的數據類型,從單字段到幾十個字段。字段的類型可以是text, string, number等;
  • 查詢語法:支持簡單的單一條件查詢, 以及複雜的各種條件組合查詢、過濾;
  • 相關性計算:支持最多三階段相關性計算,提供豐富的信息供用戶自定義每一個階段的算分方法;
  • 統計導航:支持對檢索到的結果做靈活的分組統計和智能導航。

一淘前端負責向終端用戶展現搜索結果頁,它是一淘的“門店”,設有各式各樣櫥窗:商品、淘吧、資訊、論壇、問答、圖片、網頁等。保證這個門店正常運轉的機制包括:

  • Bootstrap:負責查詢詞合法性檢查、編碼識別與轉換、停止詞和違禁詞過濾。
  • Query Planner:負責查詢詞重寫(Query Rewrite)、主輔詞識別、商品類目預測、Combo排序、大小寫轉換、同義詞和多義詞,等等。
  • RMOD:負責向各類後端服務接口發起併發請求,並將返回結果進行整合用於頁面展現。
  • Cache:負責分佈式緩存搜索結果數據,從而縮短響應時間,提高前端系統的吞吐量。

此外,爲了一淘團隊的運營效率,我們還在構建一套“從收集Query和Click日誌開始,進行數據統計、關聯分析、異常報警和人工調整等相關流程”的以Query爲中心的運營工具。

一淘的小二們深知:如何使我們打造的這些櫥窗所展現的內容具有越來越精準的 “導購相關性”,是一淘面向用戶的核心價值。如何進入朝這個方向持續發展的正循環呢?我們目前的思路是:構建一套結合“Query分析”和“網頁分析”的多層次排序模型,在保證相關性的前提下,靈活快速地調整模型結構以適應變化的業務需求。

Query分析的目的是理解用戶的查詢意圖,並將此意圖轉化成排序時可用的信息影響最終排序結果,如:

  • 瀏覽型:沒有明確的購物對象和意圖,邊看邊買,用戶比較隨意和感性。Query例如:”2010年10大香水排行”,”2010年流行毛衣”, “zippo有多少種類?”;
  • 查詢型:有一定的購物意圖,體現在對屬性的要求上。Query例如:”適合老人用的手機”,”500元 手錶”;
  • 對比型:已經縮小了購物意圖,具體到了某幾個產品。Query例如:”諾基亞E71 E63″,”akg k450 px200″;
  • 確定型:已經做了基本決定,重點考察某個對象。Query例如:”諾基亞N97″,”IBM T60″。

隨着一淘用戶越來越多,我們也會進一步挖掘用戶查詢需求,拓展意圖分析種類。

網頁分析期望得到:網頁質量、所在站點的權威度、內容的主題詞、是否爲購物類文章等。這些信息將和Query分析的產出合併,一起在不同層次參與搜索結果相關性的排序過程。

一淘正在建立一套“用戶行爲/模型提升”的自循環體系,這其中以用戶行爲爲主、輔以完善模型改進流程和豐富相關平臺工具,期望這樣可以越來越自動化地、持續地提升相關性效果,更加智能地滿足用戶的搜索意圖。

系統架構上講,一淘有很多大數據量的離線計算任務是在淘寶上千臺基於Hadoop的分佈式計算平臺上完成的,在其上獲取淘寶的商品、交易和用戶數據是一件非常便捷的事情,平臺強大的計算和存儲能力也進一步激發了一淘工程師們的想象力和創造力。比如:一淘首次將淘寶用戶的搜索查詢詞和直接購買的寶貝相關聯,並實現了分鐘級別的引擎更新,這爲用戶們提供了最及時導購風向標。此外,一淘還直接調用了很多線上服務的接口,例如:寶貝搜索、產品搜索、合併同款等。

產品服務上講,一淘是淘寶主站與全網電子商務網站聯繫的重要紐帶。簡單地講,淘寶站內數據(如:產品庫、類目體系)可以保障一淘的導購搜索相關性有非常正向的促進作用;一淘通過Open Search和外網商品信息抓取,也可以爲其他電子商務網站帶去更多高質量的商業流量;而互聯網的商品、資訊、論壇等信息又有助於一淘的搜索結果更全面、信息更權威;一淘搜索質量的提高反過來可以幫助改善淘寶的用戶體驗(如:無結果頁、購前調研),一淘的用戶行爲分析和趨勢預測也可以作爲淘寶運營收集反饋信息的重要通道。

通過上面的介紹,我們不難理解一淘對於所採用技術的實用性、高效性和擴展性方面都會有業界領先的要求。這其中主要涉及的領域包括:

  • 海量網頁的抓取和抽取
  • 分佈式存儲和計算平臺
  • 大規模數據(網頁/商品)處理與分析
  • 購物搜索相關性體系
  • 高性能可定製的全文檢索引擎
  • 快速響應業務需求的前端架構

這些技術方向,我們會在今後的Blog中進行進一步的展開、更深入的闡述。

原文地址:http://www.searchtb.com/2010/11/etao-tech-overview.html


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