從0開始設計產品搜索功能(二)

0 評論 4598 瀏覽 55 收藏 24 分鐘

怎樣搭建好一個產品的搜索功能?這篇文章里,作者梳理了產品的搜索流程框架,并從激活搜索、輸入關鍵字等細分維度進行了詳細剖析,一起來看一下,或許會對你有所幫助。

搜索的進行主要分為 3 個階段,分別為搜索前、搜索中、搜索后。這 3 個階段分別對應搜索功能的靜止狀態、點擊觸發狀態、確認搜索狀態。對功能狀態再進行細化,可以得到一個框架清晰的搜索流程。如下圖所示,展示了一個完整的搜索流程。

一、激活搜索

1. 光標聚焦

用戶進入激活搜索狀態,表明用戶需要通過搜索來獲取想要的內容。搜索功能設計的第一個目標就是聚焦。

用戶在點擊搜索框的時候會喚起底部鍵盤,輸入框內閃爍藍色光標。這個設計會讓視覺更聚焦于搜索框,而不受其他內容的干擾,底部喚起的鍵盤也有助于減少屏幕內的干擾要素。

2. 衍生能力

基于搜索這一需求,搜索功能衍生出了搜索記錄、搜索發現和搜索榜單的能力。從產品視角上看,我們需要提供更多的途徑和選擇讓用戶快速觸達目標。

一般的互聯網產品在點擊搜索框進入搜索功能頁時,頁面會展示搜索記錄、搜索發現和搜索榜單三個欄目。除了搜索記錄,大部分的榜單和推薦主要是為了商業運營的目的而存在。比如外賣、電商平臺,其推薦和榜單功能并不意味要展示 “好” 的產品。

二、輸入關鍵字

1. 反饋方式

用戶在輸入關鍵字的時候一般會有兩種反饋方式。

第一種方式是實時匹配輸入結果,這種方式對搜索的精確度較高,同時也考驗著產品的響應速度。第二種方式是關鍵詞聯想,對精確度要求較低,講求一個模糊,搜索大致相近的內容。

為什么會出現兩種反饋方式的差異?我認為原因更多地可能與業務場景有關。

類似小紅書、知乎、百度貼吧等資訊、社區類產品,會有許多內容擊中一個關鍵詞,屬于一對多的關系。相反,類似餓了么、飛書等產品,對精確搜索有著更高的要求,目的性會更強。

2. 搜索目的

除了業務場景,導致搜索場景差異的原因來自用戶的不同訴求,每個用戶的搜索目的都是不一樣的。

舉兩個明確的例子:

  1. 模糊搜索(一對多):通過小紅書搜索牛肉該怎么做,會出來非常多的帖子。因為牛肉的做法不唯一,這不是一個精確的目的。
  2. 精確搜索(一對一):通過外賣平臺搜索 LeeLin 檸檬茶(非安利,但是是真的好喝),搜索結果會出來唯一結果,這是一個精確的目的。

對于這兩種搜索目的,可以給出明確的定義:

  1. 精確搜索:用戶搜索時有明確的目標,想在已知內容中快速定位所需信息。輸入的關鍵詞反映的是用戶想獲取的信息主題。
  2. 模糊搜索:用戶搜索目標不太明確,想在未知內容中探索信息。用戶對所需信息的主題和關鍵詞未完全理清,希望去發現和探索,難以結構化地表達所要解決的問題。

結合上面的例子和定義,總結一下用戶的搜索場景。

3 聯想模式

1)提供關聯結果

用戶輸入關鍵詞的時候會觸發展示關聯結果,這種做法在內容平臺被廣泛使用,比如下圖在小紅書搜索 citywalk 出現的關聯內容。

這種關聯結果展示能夠有效地降低用戶輸入成本,提升搜索效率。從用戶獲取網絡資訊和熱點的流程上看,大部分用戶對于尋求問題答案的途徑都大致相似,比如某天在豆瓣發現了一個大瓜,會上微博或小紅書搜索。從發現內容到搜索內容,這就是一種用戶路徑。

除了應用內搜索,部分應用還會針對關鍵詞進行顯示設計。比如在谷歌中搜索 “今日天氣” 會直接展示天氣數據,甚至搜索一些特定關鍵詞還會觸發彩蛋。感興趣的可以搜一搜這篇文章:谷歌,互聯網界的 “彩蛋狂魔。

搜索“Super Mario Bros”(超級瑪麗兄弟),搜索頁面右側就會出現超級瑪麗的寶箱

2)商業化運營

聯想模式在商業化的運用也十分常見。在外賣軟件搜索 “咖啡”,除了展示商品,產品運營還會在其中穿插營銷內容和推薦產品,滿足有營銷訴求的商家。

總的來說,關鍵詞聯想主要用在兩個地方:

一個是用戶搜索時,可以給到提示的作用,方便找到想要的信息。另一個是用戶輸入的時候不用一個字一個字去敲,減少輸入成本。對于平臺來說,聯想功能可以用來做一些營銷推廣的活動。

在設計這種包含輸入詞的交互的時候,最好結合產品本身的目的和目標用戶的使用場景來思考,這樣可以讓用戶體驗更順暢。

三、解析關鍵詞

除了產品設計,在搜索功能中最重要的一環是搜索的邏輯

用戶會輸入什么,會不會輸錯,一般會有哪些錯誤,對于錯誤應該如何解決?對這些疑問的解答構成了搜索功能中的核心環節。

產品經理不能希望用戶的每次輸入都是 “正確” 的,符合自己要求的。更多情況下,用戶在搜索時出現拼寫錯誤、表達錯誤導致的搜索不準確、搜索無結果的情況經常發生,且難以避免。

為了更準確的理解用戶想要搜什么,搜索系統通常會添加多種解析規則來增加系統對于用戶輸入內容的理解。比如預處理、分詞、改寫等方式。對關鍵詞的解析越精確,搜索功能更能為用戶帶來價值和滿足。

1. 預處理

預處理是對關鍵詞進行字符轉換、刪除、截斷等處理,將關鍵詞進行標準化和簡化,以更準確地理解用戶搜索意圖,提供更精準的搜索結果。

這個定義一聽有些復雜,不妨將預處理這個流程放在日常生活中去理解。什么叫做預處理?預處理可以理解為把從市場買回來的菜洗凈、分類處理,等待下鍋前的這一過程。

預處理的通常有 5 種方式,分別為:拼音轉文字、大小寫切換、繁簡體轉換、無意義字符移除、長度截斷。

1)拼音轉文字

示例:輸入 “chanpinjingli” 時會轉化為 “產品經理”

場景:在 B 端 CRM 系統中搜索用戶姓名一直都是一件令人苦惱的事情,尤其是當用戶的姓名較為生僻的時候。這個時候通過拼音搜索能夠快速定位到用戶。

2)大小寫切換

示例:輸入 “B1-A156-t2” 時會轉化為 “b1-A1-P510”(負1層 – A1區域 – 510號車位)

場景:在 ERP 系統(企業資源計劃)中通常會有數量眾多企業物資信息。以商場為例,對于一些固定資產,如商鋪、車位,甚至是衛生間的馬桶都有各自的編號。通過大小寫字母混排的方式來查找資產的方式較為復雜,而將輸入的內容統一轉換為小寫字母就會更易查找。

3)繁簡體轉換

示例:輸入 “産品經理” 時會轉為為 “產品經理”,反之亦然

場景:通常適用于涉及到繁體字書寫的地區。

4)無意義字符移除

示例:忽略特殊字符,包括 emoji、顏文字、空格、數字符號、語氣詞等

場景:在沒有使用字符輸入限制的情況下,輸入無意義字符一般都會影響輸出結果,導致結果為空。在一些文檔搜索的場景中,作為特殊字符的空格也會導致搜索失敗。目前許多社區都有開源的《停用詞庫》可供調用,結合實際的業務場景就可以梳理出一套較為適合的詞庫。

5)長度截斷

示例:輸入字符超過上限,截斷上限字符后面輸入的內容

場景:搜索引擎通常會常用分詞的方式進行搜索。如果輸入一個詞組較多的長句,那么對于搜索匹配的壓力會大大加強,長度截斷更考慮搜索調用產生的負載。目前百度的輸入上限為 18 個漢字,Google 為 12 個詞。

總體來看,“拼音轉漢字”、“大小寫轉換”、“繁簡體轉換” 這三種方式是通過提高系統判斷規則的復雜程度,來減小用戶輸入的復雜程度,降低用戶的輸入難度和成本?!盁o意義字符去除” 和 “長度限制” 則是合理篩選關鍵詞,簡化表達,以提高搜索結果的準確性。

2. 分詞

當輸入關鍵詞和數據庫匹配時,用戶能夠很輕松地得到想要的答案。但是也要注意到一個問題,加入用戶輸入的關鍵詞無法與數據庫完全匹配呢?

一般出現無法完全匹配的情況時會采用分詞的形式,將一個句子或一個詞組拆分為多個 Term。Term 可以是單字或詞組,Term 的作用在于它能和數據庫形成匹配。

既然采取了分詞的形式,就接下來就需要考慮如何進行分詞。

在英文語句中,分詞是一件很 “自然” 的事情,組成句子的單詞具有固定的結構,書寫句子也習慣通過空格隔開。但中文的表達通常不會用空格,且無論采用哪種分詞方式都會形成不同的表達。

目前,大多數字產品采用的是基于詞典的分詞方式,即維護一個分詞詞庫。如果輸入的關鍵詞能在詞庫中找到對應詞組,則可以召回該詞組相關的內容。但是基于詞庫分詞存在一定維護成本,例如出現新詞時需要手動添加等。

以飛書搜索作為例子。在飛書文檔中搜索 “數據庫”,會出現包含 “數據庫” 關鍵詞的文檔。但在飛書文檔中搜索 “據庫”,則無結果?!皳臁弊鳛橐粋€詞組既沒有命中分詞數據庫,也沒有文檔匹配內容。但如果將詞組隔開,我們還是能搜索到對應結果。

分詞技術廣泛應用于探索式搜索的產品場景中,通過對關鍵詞進行合理的拆分和重組,可以召回更多相關內容,強調的是召回率。在內容資訊類產品中,通常會應用分詞技術召回大量內容,以滿足用戶的查詢需求。

3. 改寫

改寫指的是將用戶輸入的關鍵詞調整為能和數據庫匹配的內容。這對搜索功能提出了新的要求:作為產品經理需要知道用戶可能會以什么樣的方式進行輸入并及時調整。

改寫具體可以分為三種方式:

  1. 糾錯:改正用戶的拼寫,將錯誤的關鍵詞糾正為正確的關鍵詞
  2. 歸一:將不同的語言表達但意思相同的詞語統一轉換為標準詞語
  3. 擴展:對輸入的關鍵詞進行意義擴展,生成與其內容或行為語義相關的詞語列表(關聯搜索)

1)糾錯

在百度輸入 “appla” 系統會糾正為 “apple”,并以糾正詞進行搜索。這是糾錯在搜索中的運用。

相較于英文糾錯,中文關鍵詞的糾錯更為復雜。比如通過拼音輸入時存在模糊音、同音字的錯誤,通過五筆鍵入則會出現形近字錯誤等情況。

在騰訊的搜索技術文檔中,鵝廠的技術同學將搜索的錯誤類型分為Non-word ErrorReal-word Error兩種,分別指 “不存在數據庫中的錯誤字符” 和 “由多個漢字組成的錯誤語句” 兩種類型。

說起來還是比較抽象,來看看具體的例子:

以上這些場景在搜索引擎中被廣泛使用,比如百度或者 Google。對于僅在產品內部進行搜索的應用來說,則可以根據用戶搜索場景和產品定位進行優化,不要求搜索的準確率和復雜度。在平時使用電商、社交、工具類產品時可以留心觀察,幾乎不同產品的搜索糾錯能力不盡相同。

2)歸一

歸一解決的問題是用戶在日常表達中存在的語義差異。比如“價格”、“售價”、“價位”、“多少錢”、“怎么賣” 等表達都可以視作 “價格”。再比如 “作文寫法”、“作文怎么寫”、“如何寫一篇作文” 等表達都可以視作 “作文寫法”。

同樣,還是以百度搜索作為示例:

3)拓展

拓展在上文已經有相關描述,參見 “輸入關鍵詞 – 聯想模式”,此處不再重復說明。

四、召回

將用戶的關鍵詞經過解析,與數據庫中的內容進行匹配的行為稱之為召回。這個過程需要后端利用倒排索引技術,建立關鍵詞和數據庫內容之間的關聯,以提高搜索查詢效率。

簡單來說,就是構建清晰的目錄結構,便于快速查找目標內容。查詢速度與召回環節的倒排索引建設質量直接相關。倒排索引建設得越合理。查詢速度就越快。

這一部分屬于我的知識盲區,感興趣的同學可以搜索這篇文章:淺談互聯網搜索之召回

五、排序

當搜索結果不止一個的時候,通常需要進行排序。排序存在規則,合理的規則能夠有效地展示關聯結果,也能給企業帶來不菲的營銷利潤,如搜索引擎的競價排名功能。

一般來說搜索有兩種排序思路。一種是根據匹配程度和參數進行排序。比方說在餓了么搜索我歷史購買奶茶的記錄,那么首先匹配的是關鍵詞 “茶”,其次會按照時間倒序(參數)進行排序。

第二種方式是算法打分排序,展示更受歡迎的內容。比如說微信的“搜一搜”、今日頭條、知乎等內容產品,會根據閱讀量、互動量、點擊率等多項指標來設計權重,并給每一篇文章進行打分,權重高者優先展示。

六、展示結果

1. 搜索成功

在完成一系列的復雜流程之后,終于來到了搜索的最后一個環節,結果展示。這是用戶唯一看到的內容(實際上沒有用戶會在意你的技術流程啊哈哈哈),所以搜索結果的展示需要力求清晰。

目前搜索引擎都會基于不同的關鍵字展示不同的結果。在算法和用戶畫像的加持下也就形成了過去互聯網產品渴望實現的 “千人千面” 能力。

如同上文中,搜索 “華為 mate60 售價” 會展示華為商城的跳轉鏈接一樣。搜索商品、人物、風景、概念都會出現不一樣的搜索結果。

PS:百度搜索真的好多廣告,只能用 Google 作為搜索示例了 = =、

其他產品的展示結果也在發揮著關鍵作用。比如一個男生或女生再淘寶搜索 “男裝”,在排除推廣商品后,看到的結果是完全不一樣的。

同時,也需要注意到搜索結果經常出現一種糟糕的情況:看菜下碟。不同用戶在旅游軟件上搜索同一家酒店,價格會出現不一致的情況。這種行為在幾年前經常被報道,如今相關的新聞變得很少了。

在游戲資訊類產品來說,展示結果相當重要。比如 Tap Tap 和網易大神。根據用戶搜索的關鍵詞不同,結果的呈現也各具特色。

關于搜索結果頁的設計,我會在第四講 – 券商搜索功能設計中進行詳細分析,敬請期待~

2. 搜索失敗

用戶搜索并不能保證每次總是成功,在搜索內容和搜索規則無法形成匹配的情況下,需要考慮出現搜索失敗的情況。一般來說,針對搜索失敗場景的產品設計有三種類型:

  1. 亂碼:可以理解為沒有針對搜索結果出現失敗進行設計,一般較少出現
  2. 分詞:在無法精確匹配的前提下,搜索關鍵詞中拆分出來單詞和詞組進行搜索
  3. 空態:展示一個搜索失敗頁,告知用戶沒有搜索到相關內容

搜索出現空態結果并不意味著好或壞。它可能意味著搜索功能欠缺了某些部分,也可能在無形中規范了用戶的搜索行為。搜索出現空態或異常情況是需要進行跟蹤的,這有利于產品及時進行調整,優化搜索規則。

七、小結

本篇的結論很簡單,在設計搜索功能的時候,作為產品經理并不能面面俱到,要求功能達到大廠搜索技術團隊的水準。我們應該做一個好的搜索功能,而不是做一個完美的搜索功能。

每一個產品的業務場景不同,功能重要性不同。即便百度和 Google 同為搜索引擎,但他們都有著不同的業務目標,更不要提產品的功能規劃和團隊的技術水平并不都是一致的。

在設計產品的時候要考慮性價比,ROI 最優的解決方案。在產品設計中更應該強調做一個好的產品,能滿足用戶需求的產品,而不是做完美的產品。

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

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

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

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!