一淘網(wǎng)技術(shù)簡(jiǎn)介
一淘網(wǎng)(?www.etao.com )于2010年10月9日10:39正式上線,很多同學(xué)和同行對(duì)一淘的系統(tǒng)架構(gòu)和面臨的關(guān)鍵技術(shù)問題都很感興趣,這篇短文希望能給予簡(jiǎn)要的介紹。
系統(tǒng)架構(gòu)
一淘的系統(tǒng)架構(gòu)如上圖所示??梢钥吹?,一淘有三個(gè)數(shù)據(jù)來源:互聯(lián)網(wǎng)、外部合作方和淘寶主站。其中,互聯(lián)網(wǎng)數(shù)據(jù)通過crawl的方式獲得,而后兩者則通過feed的方式提供。
抓取系統(tǒng)的功能包括:網(wǎng)頁抓取、抓取調(diào)度、域名解析、死鏈檢測(cè)、JavaScript執(zhí)行等。目前,一淘的資訊、話題、問答combo中的大部分?jǐn)?shù)據(jù)都是通過抓取系統(tǒng)從互聯(lián)網(wǎng)獲得的。它是一淘一個(gè)重要的“原料廠”。
離線處理系統(tǒng)是一個(gè)功能眾多、可靈活定制的Pipeline,其主要功能有:網(wǎng)頁編碼識(shí)別與轉(zhuǎn)換、網(wǎng)頁解析與內(nèi)容抽取、購(gòu)物相關(guān)站點(diǎn)發(fā)現(xiàn)、列表頁識(shí)別、網(wǎng)頁分類與消重、鏈接提取與合并、關(guān)鍵詞提取、眾多網(wǎng)頁靜態(tài)feature的提取。它是一淘的“加工廠”。
存儲(chǔ)系統(tǒng)負(fù)責(zé)存儲(chǔ)抓取系統(tǒng)和離線處理系統(tǒng)的產(chǎn)出,同時(shí)向這兩個(gè)“廠”提供高性能、大容量的存取服務(wù)。目前我們采用的是Hadoop+HBase的體系結(jié)構(gòu),將網(wǎng)頁、鏈接、圖片進(jìn)行了分類存放。存儲(chǔ)系統(tǒng)是一淘存放原料、半成品的“核心倉庫”。
在線引擎負(fù)責(zé)對(duì)一淘前端搜索請(qǐng)求返回查詢結(jié)果,它生成索引的數(shù)據(jù)來自存儲(chǔ)系統(tǒng)。在線引擎是一淘面向用戶的“成品生產(chǎn)車間”。值得一提的是,一淘采用了阿里集團(tuán)新一代的HA2引擎技術(shù),HA2結(jié)合了開源引擎和阿里上一代引擎技術(shù)的設(shè)計(jì)優(yōu)點(diǎn),在支持全文檢索的同時(shí),兼?zhèn)淞松唐匪阉鞯母鞣N功能。它目前提供的主要特性有:
- 數(shù)據(jù)規(guī)模:支持的數(shù)據(jù)規(guī)模從一臺(tái)機(jī)器(partition)到幾百臺(tái)機(jī)器;
- 更新速度:支持全量數(shù)據(jù)更新,以及最快支持分鐘級(jí)的增量更新;
- 數(shù)據(jù)類型:允許用戶定義各種的數(shù)據(jù)類型,從單字段到幾十個(gè)字段。字段的類型可以是text, string, number等;
- 查詢語法:支持簡(jiǎn)單的單一條件查詢, 以及復(fù)雜的各種條件組合查詢、過濾;
- 相關(guān)性計(jì)算:支持最多三階段相關(guān)性計(jì)算,提供豐富的信息供用戶自定義每一個(gè)階段的算分方法;
- 統(tǒng)計(jì)導(dǎo)航:支持對(duì)檢索到的結(jié)果做靈活的分組統(tǒng)計(jì)和智能導(dǎo)航。
一淘前端負(fù)責(zé)向終端用戶展現(xiàn)搜索結(jié)果頁,它是一淘的“門店”,設(shè)有各式各樣櫥窗:商品、淘吧、資訊、論壇、問答、圖片、網(wǎng)頁等。保證這個(gè)門店正常運(yùn)轉(zhuǎn)的機(jī)制包括:
- Bootstrap:負(fù)責(zé)查詢?cè)~合法性檢查、編碼識(shí)別與轉(zhuǎn)換、停止詞和違禁詞過濾。
- Query Planner:負(fù)責(zé)查詢?cè)~重寫(Query Rewrite)、主輔詞識(shí)別、商品類目預(yù)測(cè)、Combo排序、大小寫轉(zhuǎn)換、同義詞和多義詞,等等。
- RMOD:負(fù)責(zé)向各類后端服務(wù)接口發(fā)起并發(fā)請(qǐng)求,并將返回結(jié)果進(jìn)行整合用于頁面展現(xiàn)。
- Cache:負(fù)責(zé)分布式緩存搜索結(jié)果數(shù)據(jù),從而縮短響應(yīng)時(shí)間,提高前端系統(tǒng)的吞吐量。
此外,為了一淘團(tuán)隊(duì)的運(yùn)營(yíng)效率,我們還在構(gòu)建一套“從收集Query和Click日志開始,進(jìn)行數(shù)據(jù)統(tǒng)計(jì)、關(guān)聯(lián)分析、異常報(bào)警和人工調(diào)整等相關(guān)流程”的以Query為中心的運(yùn)營(yíng)工具。
一淘的小二們深知:如何使我們打造的這些櫥窗所展現(xiàn)的內(nèi)容具有越來越精準(zhǔn)的 “導(dǎo)購(gòu)相關(guān)性”,是一淘面向用戶的核心價(jià)值。如何進(jìn)入朝這個(gè)方向持續(xù)發(fā)展的正循環(huán)呢?我們目前的思路是:構(gòu)建一套結(jié)合“Query分析”和“網(wǎng)頁分析”的多層次排序模型,在保證相關(guān)性的前提下,靈活快速地調(diào)整模型結(jié)構(gòu)以適應(yīng)變化的業(yè)務(wù)需求。
Query分析的目的是理解用戶的查詢意圖,并將此意圖轉(zhuǎn)化成排序時(shí)可用的信息影響最終排序結(jié)果,如:
- 瀏覽型:沒有明確的購(gòu)物對(duì)象和意圖,邊看邊買,用戶比較隨意和感性。Query例如:”2010年10大香水排行”,”2010年流行毛衣”, “zippo有多少種類?”;
- 查詢型:有一定的購(gòu)物意圖,體現(xiàn)在對(duì)屬性的要求上。Query例如:”適合老人用的手機(jī)”,”500元 手表”;
- 對(duì)比型:已經(jīng)縮小了購(gòu)物意圖,具體到了某幾個(gè)產(chǎn)品。Query例如:”諾基亞E71 E63″,”akg k450 px200″;
- 確定型:已經(jīng)做了基本決定,重點(diǎn)考察某個(gè)對(duì)象。Query例如:”諾基亞N97″,”IBM T60″。
隨著一淘用戶越來越多,我們也會(huì)進(jìn)一步挖掘用戶查詢需求,拓展意圖分析種類。
網(wǎng)頁分析期望得到:網(wǎng)頁質(zhì)量、所在站點(diǎn)的權(quán)威度、內(nèi)容的主題詞、是否為購(gòu)物類文章等。這些信息將和Query分析的產(chǎn)出合并,一起在不同層次參與搜索結(jié)果相關(guān)性的排序過程。
一淘正在建立一套“用戶行為/模型提升”的自循環(huán)體系,這其中以用戶行為為主、輔以完善模型改進(jìn)流程和豐富相關(guān)平臺(tái)工具,期望這樣可以越來越自動(dòng)化地、持續(xù)地提升相關(guān)性效果,更加智能地滿足用戶的搜索意圖。
與淘寶的關(guān)系
就淘寶目前絕對(duì)領(lǐng)先的市場(chǎng)占用率而言,能充分利用好淘寶的站內(nèi)數(shù)據(jù),對(duì)一淘來說無疑是很重要、也很幸運(yùn)的。
從系統(tǒng)架構(gòu)上講,一淘有很多大數(shù)據(jù)量的離線計(jì)算任務(wù)是在淘寶上千臺(tái)基于Hadoop的分布式計(jì)算平臺(tái)上完成的,在其上獲取淘寶的商品、交易和用戶數(shù)據(jù)是一件非常便捷的事情,平臺(tái)強(qiáng)大的計(jì)算和存儲(chǔ)能力也進(jìn)一步激發(fā)了一淘工程師們的想象力和創(chuàng)造力。比如:一淘首次將淘寶用戶的搜索查詢?cè)~和直接購(gòu)買的寶貝相關(guān)聯(lián),并實(shí)現(xiàn)了分鐘級(jí)別的引擎更新,這為用戶們提供了最及時(shí)導(dǎo)購(gòu)風(fēng)向標(biāo)。此外,一淘還直接調(diào)用了很多線上服務(wù)的接口,例如:寶貝搜索、產(chǎn)品搜索、合并同款等。
從產(chǎn)品服務(wù)上講,一淘是淘寶主站與全網(wǎng)電子商務(wù)網(wǎng)站聯(lián)系的重要紐帶。簡(jiǎn)單地講,淘寶站內(nèi)數(shù)據(jù)(如:產(chǎn)品庫、類目體系)可以保障一淘的導(dǎo)購(gòu)搜索相關(guān)性有非常正向的促進(jìn)作用;一淘通過Open Search和外網(wǎng)商品信息抓取,也可以為其他電子商務(wù)網(wǎng)站帶去更多高質(zhì)量的商業(yè)流量;而互聯(lián)網(wǎng)的商品、資訊、論壇等信息又有助于一淘的搜索結(jié)果更全面、信息更權(quán)威;一淘搜索質(zhì)量的提高反過來可以幫助改善淘寶的用戶體驗(yàn)(如:無結(jié)果頁、購(gòu)前調(diào)研),一淘的用戶行為分析和趨勢(shì)預(yù)測(cè)也可以作為淘寶運(yùn)營(yíng)收集反饋信息的重要通道。
結(jié)束語
通過上面的介紹,我們不難理解一淘對(duì)于所采用技術(shù)的實(shí)用性、高效性和擴(kuò)展性方面都會(huì)有業(yè)界領(lǐng)先的要求。這其中主要涉及的領(lǐng)域包括:
- 海量網(wǎng)頁的抓取和抽取
- 分布式存儲(chǔ)和計(jì)算平臺(tái)
- 大規(guī)模數(shù)據(jù)(網(wǎng)頁/商品)處理與分析
- 購(gòu)物搜索相關(guān)性體系
- 高性能可定制的全文檢索引擎
- 快速響應(yīng)業(yè)務(wù)需求的前端架構(gòu)
這些技術(shù)方向,我們會(huì)在今后的Blog中進(jìn)行進(jìn)一步的展開、更深入的闡述。
來源:http://www.searchtb.com/2010/11/etao-tech-overview.html
- 目前還沒評(píng)論,等你發(fā)揮!