搜索應該是我們日常使用最多的一項功能了。在產品設計中,搜索也是非常重要的,但其邏輯又相對比較複雜。這篇文章,作者帶我們來梳理一下搜索的產品邏輯。
搜索場景無處不在,主要包括搜索引擎的搜索、平台商品搜索、平臺文章搜索,還有一些資料庫的簡單搜索。但萬變不離其宗,接下來主要介紹一下以商品/文章類搜索等為主的搜索流程及細節。
移動端的搜索入口常見於以下4種模式
適用於搜索需求極高或者搜索是核心流量入口的產品,如微博、花瓣等
適用於搜索是重要流量入口的產品,如淘寶、知乎等。並會通過頻繁變化的佔位詞引導搜索
適用於當前頁搜索功能並非高頻操作的頁面,將頂部、底部導航欄等位置讓渡給更重要的功能,搜索功能弱化為icon圖示,如知乎的關注頁、招行的財富頁等
不常用。目前僅在手機系統交互中出現,比如iPhone的下拉搜索
常見的搜索方式主要包括文本搜索、語音搜索、掃碼搜索、拍照搜索
為了提高搜索的便捷性和轉化率,又衍生出歷史搜索、猜你想搜、熱門搜索、連結搜索、複製搜索等
用戶輸錯了怎麼辦?使用者輸入的這個關鍵詞究竟是什麼含義?分析器的作用就是對使用者輸入的關鍵詞進行預處理、語義解析,實現對關鍵詞的聯想和優化系統對使用者輸入內容的理解。
1)長度截斷:為了避免超長字元對分詞搜索的壓力,一般會限制關鍵詞的字數,比如百度搜索控制在38個漢字以內
2)拿掉無意義字元:包括emoji、特殊符號、顏文字等
3)格式轉換:包括大小寫轉換、繁簡體轉換、全角半角轉換等
1)分詞:根據分詞詞庫將關鍵詞進行拆分,如果輸入的是詞庫未收錄的關鍵詞,可能就無法檢索到關鍵內容了(除非完全拆成單字)
2)糾錯:根據糾錯詞對使用者輸入的可能錯誤的關鍵詞進行糾正,主要包括以下兩種
① Non-word-Error:不存在資料庫的錯誤字元
② Real-word-Error:由多個漢字組成的錯誤語句(拼寫正確,但結合上下文語境表意錯誤)
當然,具體的糾錯效果跟糾錯詞的可信度有關,可信度高時,會直接使用糾錯詞查詢(提供原詞備選),可信度低時,還是會使用原詞查詢
3)拼音轉文字:比如將“kangshifu方便麵”轉換成“康師傅方便麵”
4)歸一:中文中很多詞的含義是一致的,因此會通過近義詞詞庫將不同的輸入理解成相同的含義,比如“價格”、“售價”、“多少錢”等表達的都是價格的含義
5)停止詞過濾:比如會將非法詞、敏感詞、指定的無意義詞彙過濾掉
6)聯想:調用關鍵詞統計介面,實時獲取排名靠前的數據。具體的query候選集的生成策略還會受用戶歷史記錄、熱搜記錄和運營人工干預的影響,以便幫助用戶儘快找到他們想要的內容
7)實體識別:借助實體詞庫,對輸入的關鍵詞進行實體含義的分析,比如將【康師傅紅燒牛肉麵】解析為【Brand:康師傅;Taste:紅燒;SPU &CATEGORY:方便麵】。當然,不同行業不同領域都會有自己的詞庫,差別比較大,因此詞庫一般都是不互通的
8)跳轉規則匹配:比如輸入到某個特定關鍵詞時,跳轉到特定的頁面,比如某品牌的官網等等,且通常這種跳轉是有時效限制的
召回指的是將解析后的關鍵詞與資料庫文檔進行匹配的過程。這個過程需要用到後端的倒排索引技術(構建單詞與文檔的關聯關係)。一般來說,倒排索引建設得越合理,查詢效率就越高。
同樣是在商城中搜索“水”,你覺得以下哪種排序更好?
結論:
下面以電商為例進行排序策略的介紹
考慮召回結果與query之間的相關性,並按照相關性模型進行打分,最終根據相關性從高到低排序。如果兩個召回結果的得分一致,則按ES索引自行排序,因此每次搜尋結果都有可能不同。
在粗排基礎上,考慮銷量、收藏、點擊、加購、促銷等業務因素對排序的影響。
比如銷量收藏高的靠前,比如最近門店正在跟某個品牌搞合作,則這個品牌靠前等等。
但是,這些因素要怎麼量化呢?比如銷量,不同商品之間無法直接比較個數,統計週期、門店等等也會對統計造成影響。所以這裡就需要引入一個歸一化公式,計算出一個業務因素的調整係數。比如初始銷量是50,係數是0.5,那麼最終得分是25分。再將此分數與相關性得分相加,得到最終的綜合得分。
歸一化公式參考:(商品訂單數 — 門店最少的商品訂單數 )/ (門店最高的商品訂單數 — 門店最少的商品訂單數 )
粗排和精排都是建立在“業務規則”的基礎上,利用的是專家對市場的瞭解;而排序模型則是利用機器學習、深度學習等技術構造千人千面的模型。不過這種方式只適用於用戶數據量比較大的平臺。
作者:D.lemon,公眾號:檸檬的產品小記
本文由 @D.lemon 原創發佈於人人都是產品經理。未經許可,禁止轉載。
題圖來自Unsplash,基於CC0協定。