自己作為后端研發(fā)工程師突勇,一直在公司電商項目中參與和檢索相關(guān)的工作。工作的時間也不短了坷虑,一直希望能寫一些文章來總結(jié)甲馋、整理下自己接觸到的知識點,一方面是為了梳理自己的思路迄损,另一方面也作為一種分享和交流定躏。
本文簡單總結(jié)一下,電商檢索系統(tǒng)需要向用戶提供哪些功能芹敌。
搜索頁面結(jié)構(gòu)
下圖是一個電商搜索結(jié)果頁的基本結(jié)構(gòu):
大家可以看到痊远,頁面基本上有以下幾種元素構(gòu)成:
- 搜索欄
- 商品列表
- 面包屑
- 分類樹
- 篩選項
- 商品推薦
每一種元素,都為用戶展現(xiàn)了不同緯度的檢索結(jié)果氏捞;同時碧聪,部分元素也為用戶提供了進一步的檢索、過濾功能液茎。
搜索欄逞姿,提供了query檢索的功能,用戶最常用的尋找商品的方式捆等;
分類樹和面包屑滞造,一方面從分類緯度展示了搜索結(jié)果,同時用戶也可以對于上面的結(jié)果進行分類檢索栋烤;
篩選項谒养,提供了對于檢索出的商品屬性的聚合,同時用戶又可以對于自己感興趣的屬性進行單獨篩選班缎;
商品列表蝴光,是呈現(xiàn)給用戶的最終結(jié)果;
商品推薦达址,除了自然的檢索結(jié)果蔑祟,還會根據(jù)用戶當(dāng)前的檢索行為以及歷史行為,進行商品推薦沉唠。
功能
上面提到的元素疆虚,都是為了讓用戶使用電商檢索系統(tǒng)的某些功能,或者向用戶展現(xiàn)某些功能的最終結(jié)果。下面就具體講一下電商檢索系統(tǒng)需要具備的基本功能:
Query檢索
即關(guān)鍵詞檢索径簿,用戶通過輸入一個檢索詞來描述自己的需求罢屈,比如“iphone5s”、“三星Galaxy”篇亭、“Nike運動鞋”等等缠捌。關(guān)鍵詞檢索,涉及到建立一個檢索系統(tǒng)的一些基本步驟:
- 切詞(將一段文本轉(zhuǎn)化為一個一個單元译蒂,即term)
- 建立倒排索引(Inverted Index)
- 索引歸并
- 排序
切詞之前曼月,首先需要確定的是:商品的哪些字段需要被切詞并且建入索引。商品的標題是需要建索引的柔昼,另外哑芹,一般來說,商品的品牌名稱捕透、商家名稱聪姿、分類名也是需要建索引。選擇建索引字段的范圍乙嘀,其實是需要一些權(quán)衡的末购,范圍選得過大,當(dāng)然可以提高召回率乒躺,但這樣也會出現(xiàn)一些bad case(比如將商品描述中一些不相關(guān)的term建進了索引)招盲,同時倒排拉鏈過長也會影響性能。
分類檢索
一般來說嘉冒,綜合型電商網(wǎng)站的首頁曹货,都會有一個分類樹全集,供用戶直接點擊查詢讳推。例如下圖:
除了Query檢索顶籽,用戶按照商品的分類進行檢索的比例也會較大。分類檢索和Query檢索相比银觅,不同點只是少了切詞步驟礼饱,另外將term改為商品的分類ID。
說到分類究驴,就要涉及到分類體系镊绪。一般來說,有兩種分類體系:后端分類體系洒忧,和前端分類體系蝴韭。后端分類體系相對穩(wěn)定,幾乎不變熙侍,用戶感知不到后端分類榄鉴;前端分類體系結(jié)構(gòu)可以很靈活履磨,隨意變化,一般由運營同學(xué)來維護庆尘。前剃诅、后端分類體系都是樹狀的結(jié)構(gòu),而后端分類樹的任意節(jié)點可以“掛載”至一個或者多個前端分類樹的葉子節(jié)點上面驶忌,這樣兩套分類體系之間就產(chǎn)生了關(guān)聯(lián)矛辕。
這兩個分類體系可以類比為超市的貨物分類(嚴格來說應(yīng)該是電商參考了零售行業(yè)的分類方式),一開始貨物都是放在后臺的庫房里面的位岔,它們按照一種分類體系(后端分類系統(tǒng))來存放如筛,非工作人員是看不到的;而等到貨物需要從庫房擺放到貨架時抒抬,超市工作人員可以以時令、促銷活動等為依據(jù)晤柄,讓貨架上的商品按照另一種體系(前端分類體系)進行組織擦剑,顧客只能看到這種組織形式。
排序
用戶通過query或者分類檢索出的商品結(jié)果芥颈,默認都是按照相關(guān)性排序的惠勒。(關(guān)于相關(guān)性排序,內(nèi)容還是比較復(fù)雜的爬坑,另外自己也不是專門做這一塊的纠屋,這里就不展開講了)除了按照相關(guān)性進行排序,用戶還可以按照其它條件進行排序盾计,例如:
- 價格
- 折扣
- 評論數(shù)
- 好評度
- 上架時間
- 是否正在促銷
- ……
上面都是用戶可以看得到售担、自己可以選擇的排序方式。除了這些署辉,還會有一些其它因素影響商品結(jié)果的排序族铆。
首先是一些基本的業(yè)務(wù)邏輯,比如在自然排序下哭尝,有庫存的商品排在前面哥攘,無庫存的排在后面;SPU商品排在前面材鹦,SKU商品排在后面逝淹。(SKU、SPU的概念后面會講到)
另外還有一些運營方面的考慮桶唐。比如栅葡,發(fā)現(xiàn)搜索結(jié)果中有一個很不相關(guān)的商品出現(xiàn),這時就急需在query粒度上對這個商品進行打壓莽红、甚至是不允許展現(xiàn)妥畏“畎睿或者,由于某種合作關(guān)系醉蚁,在某些query或者分類下燃辖,必須將某個商家的商品排在前面。因此网棍,檢索系統(tǒng)后臺就需要維護這么一份各個維度的商品“黑白名單”黔龟。
標簽聚合
所謂標簽,就是用一些“鍵-值”的概念來描述一個商品的特點氏身。比如說MacBookPro,可以有如下標簽:
- 品牌:Apple
- 尺寸:13寸
- 處理器:Intel i7
- 價格:9288 RMB
- ……
當(dāng)用戶檢索商品時惑畴,檢索系統(tǒng)除了直接展示商品以外蛋欣,還會將商品上面的標簽進行聚合楣富,一般都是通過“標簽名 + 標簽值的列表”的形式展現(xiàn)給用戶(如下圖)庄萎,方便用戶通過標簽進行進一步的篩選脱羡。
分類樹
當(dāng)用戶進行query檢索時绕娘,檢索系統(tǒng)會進行query分析,將這個query可能對應(yīng)的分類叙淌,通過分類樹的形式展現(xiàn)給用戶。比如用戶搜索“小米”堵未,query分析出的分類既有“手機通訊”,又有“糧油米面”谷朝。
一般來說,檢索系統(tǒng)為了保證query的準確率跃须,會在檢索條件中添加query的預(yù)測分類站叼,使得檢索結(jié)果不至于各種分類的商品混雜在一起,影響用戶體驗回怜。所以當(dāng)用戶搜索“小米”時大年,檢索結(jié)果會限定在“手機通訊”這個分類下,但是如果用戶真的是想搜索“糧油米面”下的小米玉雾,也沒關(guān)系翔试,只需在點擊分類樹中相應(yīng)分類進行限定即可。
面包屑
面包屑复旬,原來是用于在網(wǎng)站上面顯示當(dāng)前頁面在整個sitemap中的位置垦缅,方便用戶跳轉(zhuǎn)至網(wǎng)站其它地方。在電商網(wǎng)站中驹碍,就變成了展現(xiàn)網(wǎng)站所在的分類路徑( + 品牌名稱 + query)壁涎,例如
電腦、辦公 > 電腦整機 > 筆記本 > 清華同方(THTF) > 清華同方鋒銳T200
點擊面包屑上面的每一級分類志秃,就可以在某個分類下進行商品檢索怔球,方便用戶擴大或者縮小檢索范圍。
過濾
除了進行各種觸發(fā)(query檢索浮还、分類檢索等)竟坛,還需要在觸發(fā)結(jié)果的基礎(chǔ)上面,再進行過濾钧舌。上面說到的標簽過濾担汤、分類樹限定,都屬于過濾洼冻≌钙纾總結(jié)下來,會有這么幾種過濾方式:
- 分類過濾
- 標簽過濾
- 價格區(qū)間過濾
- 地域過濾
- 庫存過濾
- 是否自營
- 商家過濾(針對于微購這樣的電商平臺)
Query提示
所謂query提示撞牢,就是當(dāng)用戶在搜索框中建入query時率碾,系統(tǒng)能提供給用戶一個query list,或者一些分類建議普泡,方便用戶向檢索系統(tǒng)提供給準確的query以及分類范圍播掷,減少用戶進行重復(fù)搜索的次數(shù)。
以下是京東的query提示截屏撼班,有拼音翻譯為query歧匈、有分類預(yù)測、有每個query對應(yīng)的檢索商品數(shù)砰嘁,做的比較完善件炉。
相對而言勘究,微購做的query提示就原始許多,輸入“shouji”斟冕,居然連本身的“手機”都沒有口糕,囧……
Query改寫
Query分析中的一項功能就是做“query correction”,通過算法或者人工標注的形式磕蛇,判斷出用戶真正需要搜索的query是什么景描。比如用戶輸入了“按著手機”,檢索系統(tǒng)需要能判斷出用戶搜索的真正query可能是“安卓手機”秀撇,當(dāng)然超棺,好的產(chǎn)品肯定能讓用戶自行選擇,而不是強奸用戶呵燕,就像上面提到的用戶可以選擇分類樹上的分類棠绘,用以明確告知系統(tǒng)自己所需要查找的分類范圍。
以下是在京東搜索“按著手機”的截圖:
SPU聚合
首先需要提供兩個概念:SKU再扭,以及SPU氧苍。
根據(jù)我在網(wǎng)上查找到的資料,SKU是Stock Keeping Unit泛范,指的是庫存的最小單位让虐;而SPU是Standard Product Unit,是指商品信息聚合的最小單位罢荡,是一組可復(fù)用澄干、易檢索的標準化信息的集合,該集合描述了一個產(chǎn)品的特性柠傍。
簡單的理解就是,“iPhone4S”是一個SPU辩稽,“iPhone4S 白色 16G 電信版”就是一個SKU惧笛;“MacBookPro”是一個SPU,“MacBookPro 13寸 8G內(nèi)存 128G硬盤”就是一個SKU逞泄。
因此患整,當(dāng)用戶進行商品檢索時,需要將SKU粒度的商品聚合成SPU粒度喷众,使得檢索結(jié)果比較多樣各谚,從而不至于滿屏都是各種顏色、型號的同一款商品到千。等到用戶進行商品詳情頁之后昌渤,再來選擇具體的型號。
下圖是微購檢索結(jié)果頁SPU憔四、SKU排列結(jié)果:
以下是京東商品詳情頁的截屏膀息,紅框中的選項的每一種組合般眉,都代表著不同的SKU。
推薦
推薦系統(tǒng)潜支,是和檢索系統(tǒng)同樣負責(zé)的系統(tǒng)甸赃,另外我也并不熟悉相關(guān)的知識,所以這里只是根據(jù)自己的理解冗酿,簡單的說一下埠对。
從頁面角度來說,幾乎所有頁面上面都可以進行商品推薦:首頁裁替、搜索結(jié)果頁项玛、詳情頁、購物車頁面胯究、下單成功頁稍计、錯誤頁,等等裕循。而不同的頁面臣嚣,推薦的側(cè)重點也會不盡相同。
比如首頁推薦剥哑,用戶這次購物流程還沒有任何行為硅则,所以一般都是通過該用戶的歷史行為向用戶進行推薦。
在詳情頁株婴,用戶則已經(jīng)表現(xiàn)出對于這個商品的較強的需求怎虫,一般會有兩種類型的推薦:
- 推薦和該商品類似的商品
- 推薦可以和該商品進行組合的商品
第一種推薦,在各分類商品中出現(xiàn)的都比較多困介,一般的推薦理由是“看(購買)過該商品的用戶也看(購買)了”大审;
第二種推薦,一般出現(xiàn)在數(shù)碼產(chǎn)品中座哩。比如用戶在看一款手機時徒扶,向用戶推薦手機套、手機耳機根穷、SD卡姜骡,讓用戶可以“一頁式”完成許多商品的購買,減少用戶決策的過程屿良,激發(fā)用戶的購物欲望(原來根本沒想到手機套這回事圈澈,既然你推薦了,又不貴尘惧,就買一個唄)康栈。
到了購物車頁面,用戶的購物流程即將結(jié)束,能讓用戶在這個階段再購買的一個主要動力是:湊單谅将,這樣可以節(jié)省運費或者參加活動漾狼。所以在這個階段推薦的商品一般是:同店鋪的相似商品,以及一些單價較低的饥臂、日常消費的商品胰锌。
總結(jié)
本文并沒有講解與電商檢索相關(guān)的技術(shù)細節(jié)魂莫,只是單獨從產(chǎn)品的角度走趋,羅列了一下一個電商檢索系統(tǒng)需要具備的功能蘸鲸,只能算是自己粗淺的整理和歸納,肯定有許多遺漏或者錯誤之處囚戚。有問題的話酵熙,歡迎大家反饋,我也會及時進行更正驰坊。以后有機會的話匾二,還會對電商檢索系統(tǒng)中的技術(shù)細節(jié)進行一些歸納和整理。
-- EOF --