電商后臺設(shè)計——搜索

16 評論 49723 瀏覽 466 收藏 13 分鐘

編輯導(dǎo)語:我們在進(jìn)行網(wǎng)上購物時,可以直接利用搜索功能查找想要的商品,十分快捷方便;為了方便我們的更快的找到,搜索后會根據(jù)系統(tǒng)內(nèi)部的邏輯進(jìn)行查找;本文作者詳細(xì)介紹了電商平臺的搜索原理以及搜索功能。

電商平臺商品成千上萬,為了方便用戶快速查找到自己想要的商品,平臺中會設(shè)置有多種查詢方式,如品類搜索、關(guān)鍵字搜索等。

但是無論前臺頁面樣式如何改變,系統(tǒng)內(nèi)部的搜索邏輯其實(shí)都是同一套,今天我們就來看看電商平臺的搜索原理以及常見的搜索功能要點(diǎn)。

一、查詢種類

如果按照內(nèi)部邏輯劃分,電商系統(tǒng)中的查詢通常有兩類:特定維度查詢和關(guān)鍵字查詢。

1. 特定維度查詢

特定維度僅可查詢由系統(tǒng)指定的部分可屬性,如品類、品牌、價格、性別、材質(zhì)等,并且用戶無法輸入查詢值,僅能選擇查詢值。

由于這些數(shù)據(jù)在系統(tǒng)內(nèi)部都維護(hù)有基礎(chǔ)數(shù)據(jù),并且保存在指定的字段中,所以對它們的查詢相對比較簡單。

用戶在選中對應(yīng)選項(xiàng)時,可以獲得對應(yīng)的唯一ID,之后根據(jù)ID查詢相應(yīng)字段獲得結(jié)果,查詢相對比較準(zhǔn)確。

2. 關(guān)鍵字查詢

整個搜索功能最重要的入口,允許用戶隨意輸入要查詢的關(guān)鍵字,通常僅有一個查詢關(guān)鍵字長度限制。

相對于特定維度查詢,關(guān)鍵字查詢相對比較復(fù)雜,下圖是搜索的原理圖,下面來一一進(jìn)行分析。

二、邏輯層操作

當(dāng)用戶提交了查詢關(guān)鍵字后,系統(tǒng)會將關(guān)鍵字交給搜索邏輯處理,邏輯層會進(jìn)行一下幾步操作:

1. 非法詞過濾

由于關(guān)鍵字查詢功能是對用戶開放的,所以用戶輸入什么內(nèi)容我們是不可控的。

我們在項(xiàng)目排查時經(jīng)常會發(fā)現(xiàn)一些五花八門的關(guān)鍵字,其中有不少關(guān)鍵字比較敏感,比如涉黃、涉賭等等,這些關(guān)鍵字我們通常都會屏蔽,不進(jìn)行數(shù)據(jù)搜索。

要屏蔽對應(yīng)的關(guān)鍵字,后臺就需要維護(hù)一套非法詞庫,當(dāng)用戶輸入的關(guān)鍵字在非法詞庫中就不再做搜索,以減輕服務(wù)器壓力。

網(wǎng)上一般有現(xiàn)成的詞庫可以直接導(dǎo)入系統(tǒng),不滿足的后臺再進(jìn)行維護(hù)擴(kuò)充。

2. 錯誤詞糾正

在輸入查詢關(guān)鍵字時,用戶可能會輸入成拼音、或者錯別字,如用戶本意要輸入“阿迪達(dá)斯”,實(shí)際輸入成“阿迪斯”,但是結(jié)果依然能返回和“阿迪達(dá)斯”匹配的數(shù)據(jù)。

這是因?yàn)檫壿嬛杏幸惶准m錯詞處理,當(dāng)系統(tǒng)對比有錯誤時,會進(jìn)行糾正處理。

同樣后臺也需要維護(hù)了一套糾錯詞庫,當(dāng)用戶輸入的關(guān)鍵字如果在糾錯詞庫中,系統(tǒng)會自動將錯誤關(guān)鍵字替換為設(shè)置好的關(guān)鍵字;如:阿迪斯->阿迪達(dá)斯;阿達(dá)斯->阿迪達(dá)斯,之后查詢實(shí)際采用的是轉(zhuǎn)換后的關(guān)鍵字。

3. 特定跳轉(zhuǎn)

有時我們在電商平臺上輸入查詢關(guān)鍵字,會發(fā)現(xiàn)部分關(guān)鍵字結(jié)果不會跳轉(zhuǎn)到結(jié)果列表頁,而是跳轉(zhuǎn)到一個商家店鋪主頁或者活動頁;如輸入關(guān)鍵字“阿迪達(dá)斯”,可能直接就進(jìn)入到了阿迪達(dá)斯旗艦店頁面,也有可能進(jìn)入阿迪達(dá)斯活動專場頁面。

要實(shí)現(xiàn)這個功能,后臺同樣需要維護(hù)一套跳轉(zhuǎn)規(guī)則映射庫;當(dāng)用戶的搜索關(guān)鍵字與規(guī)則庫中的關(guān)鍵字匹配時,則返回規(guī)則所指定的跳轉(zhuǎn)路徑,前端頁面直接跳轉(zhuǎn)過去——通常這個跳轉(zhuǎn)規(guī)則是有時間限定的。

4. 商品搜索

當(dāng)用戶輸入的查詢關(guān)鍵字通過非法詞過濾、糾錯詞糾正、特定跳轉(zhuǎn)匹配后,依然沒有匹配結(jié)果,這時系統(tǒng)會將關(guān)鍵字交給商品搜索服務(wù)器。

搜索服務(wù)器首先會對關(guān)鍵字進(jìn)行分詞處理,然后再根據(jù)分詞進(jìn)行商品查詢,并根據(jù)權(quán)重規(guī)則獲得商品權(quán)重值,之后再進(jìn)行權(quán)重值排序,最后返回查詢結(jié)果。

在商品搜索中有三個非常重要的功能:分詞、權(quán)重、以及搜索維度。

分詞:分詞是將一個比較長的關(guān)鍵字拆分成多個合理的比較短的關(guān)鍵字(如:阿迪達(dá)斯板鞋->阿迪達(dá)斯、板鞋、鞋);說起來只是簡單的一句話,但是能做出一個好的分詞項(xiàng)目并非易事,有興趣的同學(xué)可以自己搜索中分分詞原理,這里就不多說。項(xiàng)目中我們通常會引用第三方的分詞軟件獲得分詞,之后再去商品服務(wù)器中去查詢數(shù)據(jù)并將結(jié)果展示出來。

權(quán)重:權(quán)重是衡量某一指標(biāo)的重要程度,在電商平臺里都是各家的商業(yè)機(jī)密,網(wǎng)上公開的資料也是少之又少;一個商品的權(quán)重高低,直接決定著商品排名情況,當(dāng)然也就影響著銷售額了;下一篇《權(quán)重設(shè)計》我會單獨(dú)介紹電商平臺是如何設(shè)計的。

需要注意的是上面提到的搜索服務(wù)器不是常見的關(guān)系型數(shù)據(jù)庫(如mysql),而是全文檢索服務(wù)器(如solr),一般的全文檢索服務(wù)器也自帶有分詞功能,滿足中小型電商的分析和搜索是沒有問題的。

搜索維度:也就是用戶可以通過哪些屬性對商品進(jìn)行搜索; 其中基礎(chǔ)屬性中的品牌、品類、價格都會參與搜索,還有特殊屬性中后臺明確規(guī)定參與搜索的屬性(如果忘記了可以查看《屬性管理》篇)。

商品搜索服務(wù)器會根據(jù)需要參與搜索的屬性,對查詢出的商品信息按各屬性進(jìn)行分組統(tǒng)計,然后由代碼邏輯層進(jìn)行數(shù)據(jù)整理,再由前端進(jìn)行展示,最終就形成了搜索列表的樣式。

不知道大家在JD上搜索時有沒有發(fā)現(xiàn),如果輸入一個覆蓋品類比較大的關(guān)鍵字,最終的返回結(jié)果只會是同一品類的商品。

如輸入查詢關(guān)鍵字【?!浚团O嚓P(guān)的商品品類有牛肉、牛仔褲、牛油果等等,實(shí)際結(jié)果只有肉類產(chǎn)品。

這個主要就是不同品類的商品屬性不同,無法做到公用的效果,業(yè)務(wù)上需要作出一些取舍;所以大家平時設(shè)計產(chǎn)品時,需要多和技術(shù)聊聊,能達(dá)到的效果盡量實(shí)現(xiàn),不能話就需要作出一些妥協(xié)。

以上就是一個搜索功能的核心要點(diǎn),一個看似簡單的搜索框,其實(shí)內(nèi)部是需要多個功能進(jìn)行協(xié)同完成的;下次給技術(shù)要工作周期時,可不能直說我只想要個框,你就要幾周時間,以免被人笑話。

上面這幾個核心要點(diǎn)每個也是一個功能要點(diǎn),都需要單獨(dú)維護(hù);除此之外還有一些功能,具體是否使用大家需要根據(jù)自己的業(yè)務(wù)來決定。

5. 搜索統(tǒng)計

做為平臺重要的數(shù)據(jù)入口,對用戶搜索詞的統(tǒng)計功能有多重要就不在多說了。

通過對搜索詞數(shù)據(jù)的統(tǒng)計,可以讓運(yùn)營人員直觀的了解到用戶對品類、品牌、價格的青睞趨勢,為后期的活動運(yùn)營、市場預(yù)測做好數(shù)據(jù)指導(dǎo)。

常見的統(tǒng)計維度有以下幾個:

  1. 每日、每周、以及每月的搜索訪問量統(tǒng)計;
  2. 搜索關(guān)鍵字的排名統(tǒng)計(組織方式:每日、最近一周、最近一個月、每月);
  3. 各品類、各品牌的搜索排名統(tǒng)計(組織方式:每日、最近一周、最近一個月、每月);
  4. 各品類、各品牌排名占比(組織方式:每日、最近一周、最近一個月、每月);
  5. 各價格區(qū)間的的搜索排名統(tǒng)計(組織方式:每日、最近一周、最近一個月、每月)。

6. 首頁推薦詞

在電商首頁,平臺為了推廣活動,會在的搜索框下面顯示一些熱門搜索詞或者推薦搜索詞,而這些搜索詞通常都會跳轉(zhuǎn)到指定的專題或者活動頁,以提升活動曝光率。

在上面講解的【特定跳轉(zhuǎn)】功能上增加一個首頁推薦詞字段加以區(qū)分就能實(shí)現(xiàn)這個功能。

7. 搜索歷史

當(dāng)用戶選中搜索框時,下拉列表里面會出現(xiàn)之前的搜索詞,方便用戶快捷選擇。

這個只需要在用戶提交搜索詞時,將搜索詞保存起來,之后再調(diào)取出來即可,功能比較簡單。

8. 搜索推薦詞

當(dāng)用戶選中搜索框并輸入查詢關(guān)鍵字,下拉列表中會出現(xiàn)相似的一些推薦詞,并且推薦詞后面有相應(yīng)的商品數(shù)量。

這個功能是通過調(diào)用【商品搜索】功能的統(tǒng)計接口,實(shí)時獲得的數(shù)據(jù)并顯示前幾位的數(shù)據(jù)。

9. 輸入形式

通常查詢關(guān)鍵字搜索默認(rèn)的輸入形式是文字形式,現(xiàn)在由于技術(shù)的發(fā)展,有實(shí)力的電商平臺也引入了圖片輸入和語音輸入方式。

其實(shí)內(nèi)部邏輯一點(diǎn)都沒有變,只是在原始的文字輸入之上有加了一層識別組件,通過識別組件先將圖片內(nèi)容或者語音內(nèi)容轉(zhuǎn)為文字,再由文字進(jìn)行搜索查詢。

以上就是搜索功能的內(nèi)容,還有遺漏的地方歡迎大家下方留言補(bǔ)充!

 

作者:JackLiu;個人微信公眾號: 揚(yáng)帆去遠(yuǎn)航(ID:Jackai_liu)

本文由 @Jack 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于CC0協(xié)議。

作者:Jack;個人微信公眾號: 揚(yáng)帆去遠(yuǎn)航(ID:Jackai_liu)

本文由 @Jack 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于 CC0 協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 寫的很好,說的很全面,頂你大佬

    來自云南 回復(fù)
  2. 這種開源的電商后臺有推薦的嗎

    來自重慶 回復(fù)
  3. 大佬,能看一下你的原型嗎~~~~

    來自重慶 回復(fù)
  4. 想請教一下,分詞之后應(yīng)該是先匹配出結(jié)果集,再對結(jié)果集進(jìn)行排序?能不能說一下匹配規(guī)則的設(shè)計?

    回復(fù)
  5. 收藏了,讀完有個困惑想和前輩交流。第8項(xiàng)搜索推薦詞這里,搜索框輸入“手機(jī)”后系統(tǒng)自動給的推薦詞“手機(jī)自營”“手機(jī)支架”,是按照什么邏輯給出的呢?不太理解搜索詞后綴的擴(kuò)展機(jī)制,是只要該推薦詞對應(yīng)搜索統(tǒng)計的商品數(shù)量越多,系統(tǒng)就越優(yōu)先推薦該詞嗎?

    來自廣東 回復(fù)
    1. 這個推薦詞有三種實(shí)現(xiàn)方法:1.通過上面講的第三個功能,現(xiàn)將推薦詞維護(hù)到數(shù)據(jù)庫里,搜索的時候先從這里獲取,這個通常在做推廣的時候用的比較多;2.通過商品搜索服務(wù)器來實(shí)現(xiàn),觀察一下大平臺的商品名稱,名稱里面是不是有什么信息,錄入商品的時候,服務(wù)器就會做關(guān)鍵字處理,后期的搜索就會依賴這些關(guān)鍵字,最后講這些結(jié)果匯總統(tǒng)計就是推薦詞了

      回復(fù)
    2. 謝謝詳細(xì)解答??,明白很多

      來自廣東 回復(fù)
    3. 期待《權(quán)重設(shè)計》??!

      來自廣東 回復(fù)
  6. 求分享 權(quán)重設(shè)計??

    回復(fù)
  7. 您好,向您請教2個問題:1.落地頁是跳轉(zhuǎn)頁面的鏈接嗎?2.權(quán)重值能否解釋一下?謝謝!??!

    來自江蘇 回復(fù)
    1. 落地頁是跳轉(zhuǎn)頁面類型,平臺里面一般有多種頁面:首頁、搜索頁、專題頁、商戶主頁等,跳轉(zhuǎn)參數(shù)里面可以填寫具體的跳轉(zhuǎn)地址和參數(shù)。權(quán)重值就和排序一樣,值越高,越靠前!

      來自北京 回復(fù)
  8. 圖片識別那里感覺不止是文字吧?再用淘寶的時候,界面上會先圈定你要搜索的東西,然后會找到和你圖片上一模一樣的商品,這個是怎么做到的呢?求答疑

    來自廣東 回復(fù)
    1. 我們有人眼看到一張圖片后,會分析出圖片中有哪些內(nèi)容,如有鞋子、價格、文案等,然后你想找相似的,就需要根據(jù)大腦想到的關(guān)鍵字去搜索。圖片識別差不多也是一樣的,不過這個內(nèi)容是由機(jī)器識別的,之后也會返給你關(guān)鍵字,然后再由這些關(guān)鍵字去產(chǎn)品庫里面查詢!

      來自北京 回復(fù)
    2. 大佬,拜讀過本文后,思路被捋順不少,感謝!
      但是,關(guān)于圖片搜索這塊的邏輯解釋,本人不太認(rèn)同。
      如果按照你所講述的邏輯去實(shí)現(xiàn)的話,勢必需要先去維護(hù)一套圖片轉(zhuǎn)文字的AI識別系統(tǒng),但是這種AI的輸出值,永遠(yuǎn)也不可能是一個且穩(wěn)定的值,也即是說,一張圖片在一次識別中,會輸出多組文字,多次識別輸出的可能是多組文字,甚至關(guān)聯(lián)性都不大,而且,這個圖片轉(zhuǎn)文字的AI識別系統(tǒng)還不同于OCR,不是簡單的【將圖片上的文字識別為字符串】,而是【將圖片的示意識別為一段文字型的描述性語言】,這個在技術(shù)難度和人工成本(數(shù)據(jù)標(biāo)注)上,遠(yuǎn)遠(yuǎn)超過絕大多數(shù)公司可承擔(dān)的范圍。簡單來說,目前可以將一張【椅子.jpg】識別為【椅子】,更近一步可識別為【一個紅色的斜著放的三只腳的椅子】,但是永遠(yuǎn)也無法完整的表達(dá)圖片作者的意圖,【阿瑪尼牌春季限量款紅色三腳椅子】,那么就會導(dǎo)致識別準(zhǔn)確率低下,搜索失真。
      ps:關(guān)于【永遠(yuǎn)也無法完整的表達(dá)圖片作者的意圖】的解釋: 一方面是圖片所包含信息太過復(fù)雜,存在太多信息噪點(diǎn),另一方面則是會存在強(qiáng)烈的主觀意愿,作為人類都無法完整理解圖片作者的意圖,AI就更不可能了(因?yàn)锳I需要人為去投喂數(shù)據(jù)和訓(xùn)練)
      而我所構(gòu)想的圖片搜索是,基于圖片本身屬性的搜索,【圖片】->【分類】->【識別圖片特征】->【在圖庫中搜索】->【輸出搜索結(jié)果】,基于這個路徑,完全不需要將圖片本身的示意轉(zhuǎn)換成文字特征,只需要先對圖片進(jìn)行分類,然后進(jìn)行特征比對即可,當(dāng)然,這個方案的成本也很高,也有一定的技術(shù)門檻,但是至少是目前的技術(shù)和人力水平可以實(shí)現(xiàn)的方式。

      以上,請大佬點(diǎn)評。

      來自廣東 回復(fù)
    3. 你說的對~ 這個就依賴于機(jī)器學(xué)習(xí)了,直接對圖片進(jìn)行學(xué)習(xí)和處理,屬于computer vision (CV)的技術(shù)范疇。

      來自北京 回復(fù)
  9. 拆分關(guān)鍵詞、識別主關(guān)鍵詞、整詞搜索、關(guān)鍵詞糾錯……

    來自上海 回復(fù)