電商后臺(tái)設(shè)計(jì)——搜索
編輯導(dǎo)語(yǔ):我們?cè)谶M(jìn)行網(wǎng)上購(gòu)物時(shí),可以直接利用搜索功能查找想要的商品,十分快捷方便;為了方便我們的更快的找到,搜索后會(huì)根據(jù)系統(tǒng)內(nèi)部的邏輯進(jìn)行查找;本文作者詳細(xì)介紹了電商平臺(tái)的搜索原理以及搜索功能。
電商平臺(tái)商品成千上萬(wàn),為了方便用戶快速查找到自己想要的商品,平臺(tái)中會(huì)設(shè)置有多種查詢方式,如品類搜索、關(guān)鍵字搜索等。
但是無(wú)論前臺(tái)頁(yè)面樣式如何改變,系統(tǒng)內(nèi)部的搜索邏輯其實(shí)都是同一套,今天我們就來(lái)看看電商平臺(tái)的搜索原理以及常見的搜索功能要點(diǎn)。
一、查詢種類
如果按照內(nèi)部邏輯劃分,電商系統(tǒng)中的查詢通常有兩類:特定維度查詢和關(guān)鍵字查詢。
1. 特定維度查詢
特定維度僅可查詢由系統(tǒng)指定的部分可屬性,如品類、品牌、價(jià)格、性別、材質(zhì)等,并且用戶無(wú)法輸入查詢值,僅能選擇查詢值。
由于這些數(shù)據(jù)在系統(tǒng)內(nèi)部都維護(hù)有基礎(chǔ)數(shù)據(jù),并且保存在指定的字段中,所以對(duì)它們的查詢相對(duì)比較簡(jiǎn)單。
用戶在選中對(duì)應(yīng)選項(xiàng)時(shí),可以獲得對(duì)應(yīng)的唯一ID,之后根據(jù)ID查詢相應(yīng)字段獲得結(jié)果,查詢相對(duì)比較準(zhǔn)確。
2. 關(guān)鍵字查詢
整個(gè)搜索功能最重要的入口,允許用戶隨意輸入要查詢的關(guān)鍵字,通常僅有一個(gè)查詢關(guān)鍵字長(zhǎng)度限制。
相對(duì)于特定維度查詢,關(guān)鍵字查詢相對(duì)比較復(fù)雜,下圖是搜索的原理圖,下面來(lái)一一進(jìn)行分析。
二、邏輯層操作
當(dāng)用戶提交了查詢關(guān)鍵字后,系統(tǒng)會(huì)將關(guān)鍵字交給搜索邏輯處理,邏輯層會(huì)進(jìn)行一下幾步操作:
1. 非法詞過濾
由于關(guān)鍵字查詢功能是對(duì)用戶開放的,所以用戶輸入什么內(nèi)容我們是不可控的。
我們?cè)陧?xiàng)目排查時(shí)經(jīng)常會(huì)發(fā)現(xiàn)一些五花八門的關(guān)鍵字,其中有不少關(guān)鍵字比較敏感,比如涉黃、涉賭等等,這些關(guān)鍵字我們通常都會(huì)屏蔽,不進(jìn)行數(shù)據(jù)搜索。
要屏蔽對(duì)應(yīng)的關(guān)鍵字,后臺(tái)就需要維護(hù)一套非法詞庫(kù),當(dāng)用戶輸入的關(guān)鍵字在非法詞庫(kù)中就不再做搜索,以減輕服務(wù)器壓力。
網(wǎng)上一般有現(xiàn)成的詞庫(kù)可以直接導(dǎo)入系統(tǒng),不滿足的后臺(tái)再進(jìn)行維護(hù)擴(kuò)充。
2. 錯(cuò)誤詞糾正
在輸入查詢關(guān)鍵字時(shí),用戶可能會(huì)輸入成拼音、或者錯(cuò)別字,如用戶本意要輸入“阿迪達(dá)斯”,實(shí)際輸入成“阿迪斯”,但是結(jié)果依然能返回和“阿迪達(dá)斯”匹配的數(shù)據(jù)。
這是因?yàn)檫壿嬛杏幸惶准m錯(cuò)詞處理,當(dāng)系統(tǒng)對(duì)比有錯(cuò)誤時(shí),會(huì)進(jìn)行糾正處理。
同樣后臺(tái)也需要維護(hù)了一套糾錯(cuò)詞庫(kù),當(dāng)用戶輸入的關(guān)鍵字如果在糾錯(cuò)詞庫(kù)中,系統(tǒng)會(huì)自動(dòng)將錯(cuò)誤關(guān)鍵字替換為設(shè)置好的關(guān)鍵字;如:阿迪斯->阿迪達(dá)斯;阿達(dá)斯->阿迪達(dá)斯,之后查詢實(shí)際采用的是轉(zhuǎn)換后的關(guān)鍵字。
3. 特定跳轉(zhuǎn)
有時(shí)我們?cè)陔娚唐脚_(tái)上輸入查詢關(guān)鍵字,會(huì)發(fā)現(xiàn)部分關(guān)鍵字結(jié)果不會(huì)跳轉(zhuǎn)到結(jié)果列表頁(yè),而是跳轉(zhuǎn)到一個(gè)商家店鋪主頁(yè)或者活動(dòng)頁(yè);如輸入關(guān)鍵字“阿迪達(dá)斯”,可能直接就進(jìn)入到了阿迪達(dá)斯旗艦店頁(yè)面,也有可能進(jìn)入阿迪達(dá)斯活動(dòng)專場(chǎng)頁(yè)面。
要實(shí)現(xiàn)這個(gè)功能,后臺(tái)同樣需要維護(hù)一套跳轉(zhuǎn)規(guī)則映射庫(kù);當(dāng)用戶的搜索關(guān)鍵字與規(guī)則庫(kù)中的關(guān)鍵字匹配時(shí),則返回規(guī)則所指定的跳轉(zhuǎn)路徑,前端頁(yè)面直接跳轉(zhuǎn)過去——通常這個(gè)跳轉(zhuǎn)規(guī)則是有時(shí)間限定的。
4. 商品搜索
當(dāng)用戶輸入的查詢關(guān)鍵字通過非法詞過濾、糾錯(cuò)詞糾正、特定跳轉(zhuǎn)匹配后,依然沒有匹配結(jié)果,這時(shí)系統(tǒng)會(huì)將關(guān)鍵字交給商品搜索服務(wù)器。
搜索服務(wù)器首先會(huì)對(duì)關(guān)鍵字進(jìn)行分詞處理,然后再根據(jù)分詞進(jìn)行商品查詢,并根據(jù)權(quán)重規(guī)則獲得商品權(quán)重值,之后再進(jìn)行權(quán)重值排序,最后返回查詢結(jié)果。
在商品搜索中有三個(gè)非常重要的功能:分詞、權(quán)重、以及搜索維度。
分詞:分詞是將一個(gè)比較長(zhǎng)的關(guān)鍵字拆分成多個(gè)合理的比較短的關(guān)鍵字(如:阿迪達(dá)斯板鞋->阿迪達(dá)斯、板鞋、鞋);說起來(lái)只是簡(jiǎn)單的一句話,但是能做出一個(gè)好的分詞項(xiàng)目并非易事,有興趣的同學(xué)可以自己搜索中分分詞原理,這里就不多說。項(xiàng)目中我們通常會(huì)引用第三方的分詞軟件獲得分詞,之后再去商品服務(wù)器中去查詢數(shù)據(jù)并將結(jié)果展示出來(lái)。
權(quán)重:權(quán)重是衡量某一指標(biāo)的重要程度,在電商平臺(tái)里都是各家的商業(yè)機(jī)密,網(wǎng)上公開的資料也是少之又少;一個(gè)商品的權(quán)重高低,直接決定著商品排名情況,當(dāng)然也就影響著銷售額了;下一篇《權(quán)重設(shè)計(jì)》我會(huì)單獨(dú)介紹電商平臺(tái)是如何設(shè)計(jì)的。
需要注意的是上面提到的搜索服務(wù)器不是常見的關(guān)系型數(shù)據(jù)庫(kù)(如mysql),而是全文檢索服務(wù)器(如solr),一般的全文檢索服務(wù)器也自帶有分詞功能,滿足中小型電商的分析和搜索是沒有問題的。
搜索維度:也就是用戶可以通過哪些屬性對(duì)商品進(jìn)行搜索; 其中基礎(chǔ)屬性中的品牌、品類、價(jià)格都會(huì)參與搜索,還有特殊屬性中后臺(tái)明確規(guī)定參與搜索的屬性(如果忘記了可以查看《屬性管理》篇)。
商品搜索服務(wù)器會(huì)根據(jù)需要參與搜索的屬性,對(duì)查詢出的商品信息按各屬性進(jìn)行分組統(tǒng)計(jì),然后由代碼邏輯層進(jìn)行數(shù)據(jù)整理,再由前端進(jìn)行展示,最終就形成了搜索列表的樣式。
不知道大家在JD上搜索時(shí)有沒有發(fā)現(xiàn),如果輸入一個(gè)覆蓋品類比較大的關(guān)鍵字,最終的返回結(jié)果只會(huì)是同一品類的商品。
如輸入查詢關(guān)鍵字【?!浚团O嚓P(guān)的商品品類有牛肉、牛仔褲、牛油果等等,實(shí)際結(jié)果只有肉類產(chǎn)品。
這個(gè)主要就是不同品類的商品屬性不同,無(wú)法做到公用的效果,業(yè)務(wù)上需要作出一些取舍;所以大家平時(shí)設(shè)計(jì)產(chǎn)品時(shí),需要多和技術(shù)聊聊,能達(dá)到的效果盡量實(shí)現(xiàn),不能話就需要作出一些妥協(xié)。
以上就是一個(gè)搜索功能的核心要點(diǎn),一個(gè)看似簡(jiǎn)單的搜索框,其實(shí)內(nèi)部是需要多個(gè)功能進(jìn)行協(xié)同完成的;下次給技術(shù)要工作周期時(shí),可不能直說我只想要個(gè)框,你就要幾周時(shí)間,以免被人笑話。
上面這幾個(gè)核心要點(diǎn)每個(gè)也是一個(gè)功能要點(diǎn),都需要單獨(dú)維護(hù);除此之外還有一些功能,具體是否使用大家需要根據(jù)自己的業(yè)務(wù)來(lái)決定。
5. 搜索統(tǒng)計(jì)
做為平臺(tái)重要的數(shù)據(jù)入口,對(duì)用戶搜索詞的統(tǒng)計(jì)功能有多重要就不在多說了。
通過對(duì)搜索詞數(shù)據(jù)的統(tǒng)計(jì),可以讓運(yùn)營(yíng)人員直觀的了解到用戶對(duì)品類、品牌、價(jià)格的青睞趨勢(shì),為后期的活動(dòng)運(yùn)營(yíng)、市場(chǎng)預(yù)測(cè)做好數(shù)據(jù)指導(dǎo)。
常見的統(tǒng)計(jì)維度有以下幾個(gè):
- 每日、每周、以及每月的搜索訪問量統(tǒng)計(jì);
- 搜索關(guān)鍵字的排名統(tǒng)計(jì)(組織方式:每日、最近一周、最近一個(gè)月、每月);
- 各品類、各品牌的搜索排名統(tǒng)計(jì)(組織方式:每日、最近一周、最近一個(gè)月、每月);
- 各品類、各品牌排名占比(組織方式:每日、最近一周、最近一個(gè)月、每月);
- 各價(jià)格區(qū)間的的搜索排名統(tǒng)計(jì)(組織方式:每日、最近一周、最近一個(gè)月、每月)。
6. 首頁(yè)推薦詞
在電商首頁(yè),平臺(tái)為了推廣活動(dòng),會(huì)在的搜索框下面顯示一些熱門搜索詞或者推薦搜索詞,而這些搜索詞通常都會(huì)跳轉(zhuǎn)到指定的專題或者活動(dòng)頁(yè),以提升活動(dòng)曝光率。
在上面講解的【特定跳轉(zhuǎn)】功能上增加一個(gè)首頁(yè)推薦詞字段加以區(qū)分就能實(shí)現(xiàn)這個(gè)功能。
7. 搜索歷史
當(dāng)用戶選中搜索框時(shí),下拉列表里面會(huì)出現(xiàn)之前的搜索詞,方便用戶快捷選擇。
這個(gè)只需要在用戶提交搜索詞時(shí),將搜索詞保存起來(lái),之后再調(diào)取出來(lái)即可,功能比較簡(jiǎn)單。
8. 搜索推薦詞
當(dāng)用戶選中搜索框并輸入查詢關(guān)鍵字,下拉列表中會(huì)出現(xiàn)相似的一些推薦詞,并且推薦詞后面有相應(yīng)的商品數(shù)量。
這個(gè)功能是通過調(diào)用【商品搜索】功能的統(tǒng)計(jì)接口,實(shí)時(shí)獲得的數(shù)據(jù)并顯示前幾位的數(shù)據(jù)。
9. 輸入形式
通常查詢關(guān)鍵字搜索默認(rèn)的輸入形式是文字形式,現(xiàn)在由于技術(shù)的發(fā)展,有實(shí)力的電商平臺(tái)也引入了圖片輸入和語(yǔ)音輸入方式。
其實(shí)內(nèi)部邏輯一點(diǎn)都沒有變,只是在原始的文字輸入之上有加了一層識(shí)別組件,通過識(shí)別組件先將圖片內(nèi)容或者語(yǔ)音內(nèi)容轉(zhuǎn)為文字,再由文字進(jìn)行搜索查詢。
以上就是搜索功能的內(nèi)容,還有遺漏的地方歡迎大家下方留言補(bǔ)充!
作者:JackLiu;個(gè)人微信公眾號(hào): 揚(yáng)帆去遠(yuǎn)航(ID:Jackai_liu)
本文由 @Jack 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于CC0協(xié)議。
作者:Jack;個(gè)人微信公眾號(hào): 揚(yáng)帆去遠(yuǎn)航(ID:Jackai_liu)
本文由 @Jack 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于 CC0 協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
寫的很好,說的很全面,頂你大佬
這種開源的電商后臺(tái)有推薦的嗎
大佬,能看一下你的原型嗎~~~~
想請(qǐng)教一下,分詞之后應(yīng)該是先匹配出結(jié)果集,再對(duì)結(jié)果集進(jìn)行排序?能不能說一下匹配規(guī)則的設(shè)計(jì)?
收藏了,讀完有個(gè)困惑想和前輩交流。第8項(xiàng)搜索推薦詞這里,搜索框輸入“手機(jī)”后系統(tǒng)自動(dòng)給的推薦詞“手機(jī)自營(yíng)”“手機(jī)支架”,是按照什么邏輯給出的呢?不太理解搜索詞后綴的擴(kuò)展機(jī)制,是只要該推薦詞對(duì)應(yīng)搜索統(tǒng)計(jì)的商品數(shù)量越多,系統(tǒng)就越優(yōu)先推薦該詞嗎?
這個(gè)推薦詞有三種實(shí)現(xiàn)方法:1.通過上面講的第三個(gè)功能,現(xiàn)將推薦詞維護(hù)到數(shù)據(jù)庫(kù)里,搜索的時(shí)候先從這里獲取,這個(gè)通常在做推廣的時(shí)候用的比較多;2.通過商品搜索服務(wù)器來(lái)實(shí)現(xiàn),觀察一下大平臺(tái)的商品名稱,名稱里面是不是有什么信息,錄入商品的時(shí)候,服務(wù)器就會(huì)做關(guān)鍵字處理,后期的搜索就會(huì)依賴這些關(guān)鍵字,最后講這些結(jié)果匯總統(tǒng)計(jì)就是推薦詞了
謝謝詳細(xì)解答??,明白很多
期待《權(quán)重設(shè)計(jì)》??!
求分享 權(quán)重設(shè)計(jì)??
您好,向您請(qǐng)教2個(gè)問題:1.落地頁(yè)是跳轉(zhuǎn)頁(yè)面的鏈接嗎?2.權(quán)重值能否解釋一下?謝謝!??!
落地頁(yè)是跳轉(zhuǎn)頁(yè)面類型,平臺(tái)里面一般有多種頁(yè)面:首頁(yè)、搜索頁(yè)、專題頁(yè)、商戶主頁(yè)等,跳轉(zhuǎn)參數(shù)里面可以填寫具體的跳轉(zhuǎn)地址和參數(shù)。權(quán)重值就和排序一樣,值越高,越靠前!
圖片識(shí)別那里感覺不止是文字吧?再用淘寶的時(shí)候,界面上會(huì)先圈定你要搜索的東西,然后會(huì)找到和你圖片上一模一樣的商品,這個(gè)是怎么做到的呢?求答疑
我們有人眼看到一張圖片后,會(huì)分析出圖片中有哪些內(nèi)容,如有鞋子、價(jià)格、文案等,然后你想找相似的,就需要根據(jù)大腦想到的關(guān)鍵字去搜索。圖片識(shí)別差不多也是一樣的,不過這個(gè)內(nèi)容是由機(jī)器識(shí)別的,之后也會(huì)返給你關(guān)鍵字,然后再由這些關(guān)鍵字去產(chǎn)品庫(kù)里面查詢!
大佬,拜讀過本文后,思路被捋順不少,感謝!
但是,關(guān)于圖片搜索這塊的邏輯解釋,本人不太認(rèn)同。
如果按照你所講述的邏輯去實(shí)現(xiàn)的話,勢(shì)必需要先去維護(hù)一套圖片轉(zhuǎn)文字的AI識(shí)別系統(tǒng),但是這種AI的輸出值,永遠(yuǎn)也不可能是一個(gè)且穩(wěn)定的值,也即是說,一張圖片在一次識(shí)別中,會(huì)輸出多組文字,多次識(shí)別輸出的可能是多組文字,甚至關(guān)聯(lián)性都不大,而且,這個(gè)圖片轉(zhuǎn)文字的AI識(shí)別系統(tǒng)還不同于OCR,不是簡(jiǎn)單的【將圖片上的文字識(shí)別為字符串】,而是【將圖片的示意識(shí)別為一段文字型的描述性語(yǔ)言】,這個(gè)在技術(shù)難度和人工成本(數(shù)據(jù)標(biāo)注)上,遠(yuǎn)遠(yuǎn)超過絕大多數(shù)公司可承擔(dān)的范圍。簡(jiǎn)單來(lái)說,目前可以將一張【椅子.jpg】識(shí)別為【椅子】,更近一步可識(shí)別為【一個(gè)紅色的斜著放的三只腳的椅子】,但是永遠(yuǎn)也無(wú)法完整的表達(dá)圖片作者的意圖,【阿瑪尼牌春季限量款紅色三腳椅子】,那么就會(huì)導(dǎo)致識(shí)別準(zhǔn)確率低下,搜索失真。
ps:關(guān)于【永遠(yuǎn)也無(wú)法完整的表達(dá)圖片作者的意圖】的解釋: 一方面是圖片所包含信息太過復(fù)雜,存在太多信息噪點(diǎn),另一方面則是會(huì)存在強(qiáng)烈的主觀意愿,作為人類都無(wú)法完整理解圖片作者的意圖,AI就更不可能了(因?yàn)锳I需要人為去投喂數(shù)據(jù)和訓(xùn)練)
而我所構(gòu)想的圖片搜索是,基于圖片本身屬性的搜索,【圖片】->【分類】->【識(shí)別圖片特征】->【在圖庫(kù)中搜索】->【輸出搜索結(jié)果】,基于這個(gè)路徑,完全不需要將圖片本身的示意轉(zhuǎn)換成文字特征,只需要先對(duì)圖片進(jìn)行分類,然后進(jìn)行特征比對(duì)即可,當(dāng)然,這個(gè)方案的成本也很高,也有一定的技術(shù)門檻,但是至少是目前的技術(shù)和人力水平可以實(shí)現(xiàn)的方式。
以上,請(qǐng)大佬點(diǎn)評(píng)。
你說的對(duì)~ 這個(gè)就依賴于機(jī)器學(xué)習(xí)了,直接對(duì)圖片進(jìn)行學(xué)習(xí)和處理,屬于computer vision (CV)的技術(shù)范疇。
拆分關(guān)鍵詞、識(shí)別主關(guān)鍵詞、整詞搜索、關(guān)鍵詞糾錯(cuò)……