一淘網( www.etao.com )於2010年10月9日10:39正式上線,很多同學和同行對一淘的系統架構和麵臨的關鍵技術問題都很感興趣,這篇短文希望能給予簡要的介紹。
系統架構
一淘的系統架構如上圖所示。可以看到,一淘有三個數據來源:互聯網、外部合作方和淘寶主站。其中,互聯網數據通過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
特別注意:本站所有轉載文章言論不代表本站觀點,本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯繫,文章轉自alibuybuy