功能設計之搜索背后的邏輯處理

4 評論 3051 瀏覽 48 收藏 11 分鐘

搜索應該是我們日常使用最多的一項功能了。在產品設計中,搜索也是非常重要的,但其邏輯又相對比較復雜。這篇文章,作者帶我們來梳理一下搜索的產品邏輯。

搜索場景無處不在,主要包括搜索引擎的搜索、平臺商品搜索、平臺文章搜索,還有一些數據庫的簡單搜索。但萬變不離其宗,接下來主要介紹一下以商品/文章類搜索等為主的搜索流程及細節。

一、搜索流程

二、搜索入口

移動端的搜索入口常見于以下4種模式

1、位于底部導航欄

適用于搜索需求極高或者搜索是核心流量入口的產品,如微博、花瓣等

2、位于頁面頂部

適用于搜索是重要流量入口的產品,如淘寶、知乎等。并會通過頻繁變化的占位詞引導搜索

3、放大鏡搜索圖標

適用于當前頁搜索功能并非高頻操作的頁面,將頂部、底部導航欄等位置讓渡給更重要的功能,搜索功能弱化為icon圖標,如知乎的關注頁、招行的財富頁等

4、隱藏式搜索入口

不常用。目前僅在手機系統交互中出現,比如iPhone的下拉搜索

三、搜索方式

常見的搜索方式主要包括文本搜索、語音搜索、掃碼搜索、拍照搜索

為了提高搜索的便捷性和轉化率,又衍生出歷史搜索、猜你想搜、熱門搜索、鏈接搜索、復制搜索等

四、分析器

用戶輸錯了怎么辦?用戶輸入的這個關鍵詞究竟是什么含義?分析器的作用就是對用戶輸入的關鍵詞進行預處理、語義解析,實現對關鍵詞的聯想和優化系統對用戶輸入內容的理解。

1、預處理

1)長度截斷:為了避免超長字符對分詞搜索的壓力,一般會限制關鍵詞的字數,比如百度搜索控制在38個漢字以內

2)移除無意義字符:包括emoji、特殊符號、顏文字等

3)格式轉換:包括大小寫轉換、繁簡體轉換、全角半角轉換等

2、語義解析

1)分詞:根據分詞詞庫將關鍵詞進行拆分,如果輸入的是詞庫未收錄的關鍵詞,可能就無法檢索到關鍵內容了(除非完全拆成單字)

2)糾錯:根據糾錯詞對用戶輸入的可能錯誤的關鍵詞進行糾正,主要包括以下兩種

① Non-word-Error:不存在數據庫的錯誤字符

  • 數字錯誤:2202→2022
  • 英文錯誤:fght→fight
  • 拼音錯誤:ping’pag→乒乓
  • 首字母簡拼:cpjl→產品經理
  • 混合錯誤:cha品ji理→產品經理

② Real-word-Error:由多個漢字組成的錯誤語句(拼寫正確,但結合上下文語境表意錯誤)

  • 漏字:產品理→產品經理
  • 多字:產品經理理→產品經理
  • 顛倒:經理產品→產品經理
  • 同諧音:產品經歷→產品經理
  • 模糊音:產品盡力→產品經理
  • 形近字:產品經哩→產品經理

當然,具體的糾錯效果跟糾錯詞的可信度有關,可信度高時,會直接使用糾錯詞查詢(提供原詞備選),可信度低時,還是會使用原詞查詢

3)拼音轉文字:比如將“kangshifu方便面”轉換成“康師傅方便面”

4)歸一:中文中很多詞的含義是一致的,因此會通過近義詞詞庫將不同的輸入理解成相同的含義,比如“價格”、“售價”、“多少錢”等表達的都是價格的含義

5)停止詞過濾:比如會將非法詞、敏感詞、指定的無意義詞匯過濾掉

6)聯想:調用關鍵詞統計接口,實時獲取排名靠前的數據。具體的query候選集的生成策略還會受用戶歷史記錄、熱搜記錄和運營人工干預的影響,以便幫助用戶盡快找到他們想要的內容

7)實體識別:借助實體詞庫,對輸入的關鍵詞進行實體含義的分析,比如將【康師傅紅燒牛肉面】解析為【Brand:康師傅;Taste:紅燒;SPU &CATEGORY:方便面】。當然,不同行業不同領域都會有自己的詞庫,差別比較大,因此詞庫一般都是不互通的

8)跳轉規則匹配:比如輸入到某個特定關鍵詞時,跳轉到特定的頁面,比如某品牌的官網等等,且通常這種跳轉是有時效限制的

五、召回

召回指的是將解析后的關鍵詞與數據庫文檔進行匹配的過程。這個過程需要用到后端的倒排索引技術(構建單詞與文檔的關聯關系)。一般來說,倒排索引建設得越合理,查詢效率就越高。

六、排序

同樣是在商城中搜索“水”,你覺得以下哪種排序更好?

結論:

  • 左圖:好,大眾熟知的產品排在最前面。
  • 中圖:中,小眾產品排在最前面。
  • 右圖:差,將僅包含“水”的汽水、爽膚水等排在前面。

下面以電商為例進行排序策略的介紹

1、粗排

考慮召回結果與query之間的相關性,并按照相關性模型進行打分,最終根據相關性從高到低排序。如果兩個召回結果的得分一致,則按ES索引自行排序,因此每次搜索結果都有可能不同。

2、精排

在粗排基礎上,考慮銷量、收藏、點擊、加購、促銷等業務因素對排序的影響。

比如銷量收藏高的靠前,比如最近門店正在跟某個品牌搞合作,則這個品牌靠前等等。

但是,這些因素要怎么量化呢?比如銷量,不同商品之間無法直接比較個數,統計周期、門店等等也會對統計造成影響。所以這里就需要引入一個歸一化公式,計算出一個業務因素的調整系數。比如初始銷量是50,系數是0.5,那么最終得分是25分。再將此分數與相關性得分相加,得到最終的綜合得分。

歸一化公式參考:(商品訂單數 — 門店最少的商品訂單數 )/ (門店最高的商品訂單數 — 門店最少的商品訂單數 )

3、排序模型

粗排和精排都是建立在“業務規則”的基礎上,利用的是專家對市場的了解;而排序模型則是利用機器學習、深度學習等技術構造千人千面的模型。不過這種方式只適用于用戶數據量比較大的平臺。

七、結果呈現

1、搜索結果的清晰呈現

2、個性化設計

作者:D.lemon,公眾號:檸檬的產品小記

本文由 @D.lemon 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自Unsplash,基于CC0協議。

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 感謝檸檬姐,非常好的干貨

    來自福建 回復
  2. 很棒!挖掘的很深度 關注了

    來自山東 回復
  3. 贊個,學習了

    來自湖北 回復
  4. 很棒的文章,言簡意賅的概述了搜索產品背后的邏輯,點贊

    來自貴州 回復