佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 探討京東的商品搜索系統(tǒng)架構(gòu)設(shè)計(jì)

探討京東的商品搜索系統(tǒng)架構(gòu)設(shè)計(jì)

熱門標(biāo)簽:服務(wù)外包 百度競價(jià)排名 呼叫中心市場需求 鐵路電話系統(tǒng) AI電銷 Linux服務(wù)器 地方門戶網(wǎng)站 網(wǎng)站排名優(yōu)化

京東商品搜索引擎是搜索推薦部自主研發(fā)的商品搜索引擎,主要功能是為海量京東用戶提供精準(zhǔn)、快速的購物體驗(yàn)。雖然只有短短幾年的時(shí)間,我們的搜索引擎已經(jīng)經(jīng)過了多次618店慶和雙11的考驗(yàn),目前已經(jīng)能夠與人們?nèi)粘J褂玫娜绻雀?、百度等全文搜索引擎相比,我們的產(chǎn)品與其有相通之處,比如涵蓋億級別商品的海量數(shù)據(jù)、支持短時(shí)超高并發(fā)查詢、又有自己的業(yè)務(wù)特點(diǎn):

1、海量的數(shù)據(jù),億級別的商品量;
2、高并發(fā)查詢,日PV過億;
3、請求需要快速響應(yīng)。

搜索已經(jīng)成為我們?nèi)粘2豢苫蛉钡膽?yīng)用,很難想象沒有了Google、百度等搜索引擎,互聯(lián)網(wǎng)會(huì)變成什么樣。京東站內(nèi)商品搜索對京東,就如同搜索引擎對互聯(lián)網(wǎng)的關(guān)系。

他們的共同之處:1. 海量的數(shù)據(jù),億級別的商品量;2. 高并發(fā)查詢,日PV過億;3. 請求需要快速響應(yīng)。這些共同點(diǎn)使商品搜索使用了與大搜索類似的技術(shù)架構(gòu),將系統(tǒng)分為:1. 離線信息處理系統(tǒng);2. 索引系統(tǒng);3. 搜索服務(wù)系;4.反饋和排序系統(tǒng)。

同時(shí),商品搜索具有商業(yè)屬性,與大搜索有一些不同之處:1. 商品數(shù)據(jù)已經(jīng)結(jié)構(gòu)化,但散布在商品、庫存、價(jià)格、促銷、倉儲等多個(gè)系統(tǒng);2. 召回率要求高,保證每一個(gè)正常的商品均能夠被搜索到;3. 為保證用戶體驗(yàn),商品信息變更(比如價(jià)格、庫存的變化)實(shí)時(shí)性要求高,導(dǎo)致更新量大,每天的更新量為千萬級別;4. 較強(qiáng)的個(gè)性化需求,由于是一個(gè)相對垂直的搜索領(lǐng)域,需要滿足用戶的個(gè)性化搜索意圖,比如用戶搜索“小說”有的用戶希望找言情小說有的人需要找武俠小說有的人希望找到勵(lì)志小說。

另外不同的人消費(fèi)能力、性別、對配送時(shí)間的忍耐程度、對促銷的偏好程度以及對屬性比如“風(fēng)格”、“材質(zhì)”等偏好不同。以上這些需要有比較完善的用戶畫像系統(tǒng)來提供支持。

總體架構(gòu)圖

搜索服務(wù)集群:由很多個(gè)merger節(jié)點(diǎn)組成的集群。接收到查詢query后,將請求通過qp觸發(fā)有策略地下發(fā)到在線檢索服務(wù)集群和其他服務(wù)集群,并對各個(gè)服務(wù)的返回結(jié)果進(jìn)行合并排序,然后調(diào)用detail server包裝結(jié)果,最終返回給用戶。

query processor server:搜索query意圖識別服務(wù)。

在線檢索服務(wù)集群:由很多個(gè)searcher節(jié)點(diǎn)組成,每個(gè)searcher列對應(yīng)一個(gè)小分片索引(包含全量數(shù)據(jù)和實(shí)時(shí)增量數(shù)據(jù))。

detail server:搜索結(jié)果展示服務(wù)。

索引生產(chǎn)端:包含全量和增量數(shù)據(jù)生產(chǎn),為在線檢索服務(wù)集群提供全量索引和實(shí)時(shí)索引數(shù)據(jù)。

離線信息處理系統(tǒng)

由于商品數(shù)據(jù)分布在不同的異構(gòu)數(shù)據(jù)庫當(dāng)中有KV有關(guān)系型數(shù)據(jù)庫,需要將這些數(shù)據(jù)抽取到京東搜索數(shù)據(jù)平臺中,這分為全量抽取和實(shí)時(shí)抽取。

對于全量索引,由于商品數(shù)據(jù)散布于多個(gè)系統(tǒng)的庫表中,為了便于索引處理,對多個(gè)系統(tǒng)的數(shù)據(jù)在商品維度進(jìn)行合并,生成商品寬表。然后在數(shù)據(jù)平臺上,使用MapReduce對商品數(shù)據(jù)進(jìn)行清洗,之后進(jìn)行離線業(yè)務(wù)邏輯處理,最終生成一份全量待索引數(shù)據(jù)。

對于實(shí)時(shí)索引,為了保證數(shù)據(jù)的實(shí)時(shí)性,實(shí)時(shí)調(diào)用各商品信息接口獲取實(shí)時(shí)數(shù)據(jù),將數(shù)據(jù)合并后采用與全量索引類似的方法處理數(shù)據(jù),生成增量待索引數(shù)據(jù)。

索引系統(tǒng)

此系統(tǒng)是搜索技術(shù)的核心,在進(jìn)入這個(gè)系統(tǒng)之前,搜索信息仍然是以商品維度進(jìn)行存儲的。索引系統(tǒng)負(fù)責(zé)生成一種以關(guān)鍵字維度進(jìn)行存儲的信息,一般稱之為倒排索引。

此系統(tǒng)對于全量和增量的處理是一致的,唯一的區(qū)別在于待處理數(shù)據(jù)量的差異。一般情況下,全量數(shù)據(jù)索引由于數(shù)據(jù)量龐大,采用Hadoop進(jìn)行;實(shí)時(shí)數(shù)據(jù)量小,采用單機(jī)進(jìn)行索引生產(chǎn)。

搜索服務(wù)系統(tǒng)

搜索服務(wù)系統(tǒng)是搜索真正接受用戶請求并響應(yīng)的系統(tǒng)。這個(gè)系統(tǒng)最初只有1列searcher組成在線檢索服務(wù)。由于用戶體驗(yàn)的需要,首先增加Query Processor服務(wù),負(fù)責(zé)查詢意圖分析,提升搜索的準(zhǔn)確性。隨著訪問量的增長,接著增加緩存模塊,提升請求處理性能。接著隨著數(shù)據(jù)量(商品量)的增長,將包裝服務(wù)從檢索服務(wù)中獨(dú)立出去,成為detail server服務(wù)。數(shù)據(jù)量的進(jìn)一步增長,對數(shù)據(jù)進(jìn)行類似數(shù)據(jù)庫分庫分表的分片操作。這時(shí)候,在線檢索服務(wù)由多個(gè)分片的searcher列組成。自然而然,需要一個(gè)merger服務(wù),將多個(gè)分片的結(jié)果進(jìn)行合并。至此,搜索基礎(chǔ)服務(wù)系統(tǒng)完備。

之后,無論是搜索量的增長或者數(shù)據(jù)量的增長,都可以通過擴(kuò)容來滿足。對于618、1111之類的搜索量增長,可通過增加每個(gè)searcher列服務(wù)器的數(shù)量來滿足。而對于商品數(shù)據(jù)的不斷增加,只需要對數(shù)據(jù)做更多的分片,相應(yīng)地增加searcher列來滿足。

搜索服務(wù)系統(tǒng)內(nèi)部的處理流程如下:

在這個(gè)流程中,緩存模塊和拉取結(jié)果模塊非常穩(wěn)定。而排序模塊和在線業(yè)務(wù)邏輯處理模塊經(jīng)常需要改動(dòng)。架構(gòu)需要穩(wěn)定,高效和通用。排序業(yè)務(wù)特點(diǎn)是實(shí)驗(yàn)?zāi)P投?,開發(fā)迭代速度快,講求效果。為了解決這一沖突,需要將排序業(yè)務(wù)與架構(gòu)分離,以動(dòng)態(tài)鏈接庫的方式集成到搜索整體架構(gòu)中,具體包括文本策略和其他策略兩個(gè)維度的相關(guān)性,文本策略相關(guān)性集成在searcher當(dāng)中;其他策略相關(guān)性(包括反饋,個(gè)性化和業(yè)務(wù)調(diào)權(quán)等等)集成在merger當(dāng)中。實(shí)現(xiàn)架構(gòu)與排序業(yè)務(wù)各司其職,互不影響干擾。

反饋和排序系統(tǒng)反饋系統(tǒng)主要包含用戶行為數(shù)據(jù)的實(shí)時(shí)收集、加工,并將數(shù)據(jù)存儲到數(shù)據(jù)集市當(dāng)中,并對這些數(shù)據(jù)進(jìn)行特征提取,排序最主要考核的線上指標(biāo)是UV價(jià)值和轉(zhuǎn)化率,所以還會(huì)利用這些數(shù)據(jù)根據(jù)優(yōu)化目標(biāo)構(gòu)建起標(biāo)注數(shù)據(jù)。然后基于機(jī)器學(xué)習(xí)的排序系統(tǒng)會(huì)針對特征構(gòu)建出模型。京東排序模型是每天更新的訓(xùn)練之前大概半年的數(shù)據(jù)。京東搜索在基于模型的排序基礎(chǔ)之上,上層還會(huì)有一層規(guī)則引擎,比如保障店鋪和品牌的多樣性,以及京東戰(zhàn)略扶持的品牌等都通過業(yè)務(wù)引擎來實(shí)現(xiàn)。一般基于機(jī)器學(xué)習(xí)的排序模型需要較長期的投入但是模型更加健壯不容易被作弊手段找到漏洞,并且可以讓轉(zhuǎn)化率和UV價(jià)值可持續(xù)的提升。 規(guī)則引擎主要是為了快速反應(yīng)市場。

針對雙11的性能優(yōu)化

1.故障秒級切換

今年搜索集群做到了三機(jī)房部署,任何一個(gè)機(jī)房出現(xiàn)斷網(wǎng)、斷電等問題可以秒級將流量切換到其它機(jī)房。并且搜索的部分應(yīng)用部署到了彈性云上,可以進(jìn)行動(dòng)態(tài)擴(kuò)容。

2.大促期間索引數(shù)據(jù)實(shí)時(shí)更新

每年大促由于商品內(nèi)容等信息更改頻繁,涉及千萬級的索引寫操作,今年針對索引結(jié)構(gòu)進(jìn)行了調(diào)整徹底消滅掉了索引更新存在的一切鎖機(jī)制,商品新增和修改操作變?yōu)殒準(zhǔn)礁隆J勾蟠倨陂g商品的索引更新達(dá)到了妙極。

3.大促期間的個(gè)性化搜索不降級

往年大促期間由于流量在平時(shí)5倍以上,高峰流量會(huì)在平時(shí)的7倍,為了保障系統(tǒng)穩(wěn)定,個(gè)性化搜索都進(jìn)行了降級處理。今年針對搜索的緩存進(jìn)行了針對性的優(yōu)化,實(shí)現(xiàn)了三級緩存結(jié)構(gòu)。從底向上分別是針對term的緩存,相關(guān)性計(jì)算緩存和翻頁緩存。最上層的翻頁緩存很多時(shí)候會(huì)被用戶的個(gè)性化請求擊穿,但是底層的相關(guān)性緩存和term緩存的結(jié)果可以起到作用,這樣不至于使CPU負(fù)載過高。

 京東在電商搜索方面產(chǎn)品和技術(shù)的創(chuàng)新

1、個(gè)性化搜索

個(gè)性化之前的搜索對于同一個(gè)查詢,不同用戶看到的結(jié)果是完全相同的。這可能并不符合所有用戶的需求。在商品搜索中,這個(gè)問題尤為特出。因?yàn)樯唐匪阉鞯挠脩艨赡芴貏e青睞某些品牌、價(jià)格、店鋪的商品,為了減少用戶的篩選成本,需要對搜索結(jié)果按照用戶進(jìn)行個(gè)性化展示。

個(gè)性化的第一步是對用戶和商品分別建模,第二步是將模型服務(wù)化。有了這兩步之后,在用戶進(jìn)行查詢時(shí),merger同時(shí)調(diào)用用戶模型服務(wù)和在線檢索服務(wù),用戶模型服務(wù)返回用戶維度特征,在線檢索服務(wù)返回商品信息,排序模塊運(yùn)用這兩部分?jǐn)?shù)據(jù)對結(jié)果進(jìn)行重排序,最后給用戶返回個(gè)性化結(jié)果。

2、整合搜索

用戶在使用搜索時(shí),其目的不僅僅是查找商品,還可能查詢服務(wù)、活動(dòng)等信息。為了滿足這一類需求,首先在Query Processor中增加對應(yīng)意圖的識別。第二步是將服務(wù)、活動(dòng)等一系列垂直搜索整合并服務(wù)化。一旦QP識別出這類查詢意圖,就條用整合服務(wù),將對應(yīng)的結(jié)果返回給用戶。

3、情感搜索

情感搜索在于盡可能滿足更多的搜索意圖,這需要在后臺構(gòu)建一個(gè)強(qiáng)大的知識庫體系。比如從海里評論中挖掘有意義的標(biāo)簽“成像效果好的相機(jī)”、“聚攏效果好的胸罩”、“適合送丈母娘”等,將這些信息一同構(gòu)建到索引中去比如搜索“適合送基友的禮物”結(jié)合搜索意圖分析相關(guān)的結(jié)果可以搜索出來。另外也可以從外部網(wǎng)站抓取有價(jià)值信息輔助構(gòu)建知識庫體系。

4、圖像檢索

很多時(shí)候用戶并不知道如何描述一個(gè)商品。通過搜索意圖分析、情感分析可以盡可能挖掘搜索意圖,很多時(shí)候用戶根本無法描述,比如在超市看到一個(gè)進(jìn)口食品或者一件時(shí)尚的衣服,可以通過拍照檢索迅速在網(wǎng)上找到并比較價(jià)格,另外看到同事穿著一件比較喜歡的衣服也可以通過拍照檢索來找到。目前京東正在開始展開這方面的開發(fā)。離線方面主要通過CNN算法,對圖片進(jìn)行主題提取、提取相似特征、相同特征提取。引擎端主要是和搜索引擎類似的技術(shù)。圖像搜索未來將可以開辟一個(gè)新的電商購物入口。京東目前正在研發(fā)新的圖像檢索引擎。

以上就是針對京東的商品搜索系統(tǒng)架構(gòu)設(shè)計(jì)進(jìn)行的詳細(xì)探討,希望對大家有所啟發(fā)。

標(biāo)簽:崇左 湖南 湘潭 衡水 銅川 黃山 仙桃 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《探討京東的商品搜索系統(tǒng)架構(gòu)設(shè)計(jì)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    湘潭县| 筠连县| 泰宁县| 子洲县| 宁波市| 白城市| 海林市| 基隆市| 宣汉县| 双辽市| 新巴尔虎右旗| 克东县| 华亭县| 鄱阳县| 玉田县| 化州市| 台北县| 宜黄县| 莱芜市| 武定县| 弥勒县| 连南| 中阳县| 庆安县| 扶沟县| 铜山县| 宜春市| 郴州市| 卫辉市| 朝阳市| 抚顺市| 孟连| 嘉义县| 南澳县| 天镇县| 姚安县| 舒兰市| 崇明县| 淮南市| 重庆市| 和田市|