從0開始設計產(chǎn)品搜索功能(二)
怎樣搭建好一個產(chǎn)品的搜索功能?這篇文章里,作者梳理了產(chǎn)品的搜索流程框架,并從激活搜索、輸入關鍵字等細分維度進行了詳細剖析,一起來看一下,或許會對你有所幫助。
搜索的進行主要分為 3 個階段,分別為搜索前、搜索中、搜索后。這 3 個階段分別對應搜索功能的靜止狀態(tài)、點擊觸發(fā)狀態(tài)、確認搜索狀態(tài)。對功能狀態(tài)再進行細化,可以得到一個框架清晰的搜索流程。如下圖所示,展示了一個完整的搜索流程。
一、激活搜索
1. 光標聚焦
用戶進入激活搜索狀態(tài),表明用戶需要通過搜索來獲取想要的內容。搜索功能設計的第一個目標就是聚焦。
用戶在點擊搜索框的時候會喚起底部鍵盤,輸入框內閃爍藍色光標。這個設計會讓視覺更聚焦于搜索框,而不受其他內容的干擾,底部喚起的鍵盤也有助于減少屏幕內的干擾要素。
2. 衍生能力
基于搜索這一需求,搜索功能衍生出了搜索記錄、搜索發(fā)現(xiàn)和搜索榜單的能力。從產(chǎn)品視角上看,我們需要提供更多的途徑和選擇讓用戶快速觸達目標。
一般的互聯(lián)網(wǎng)產(chǎn)品在點擊搜索框進入搜索功能頁時,頁面會展示搜索記錄、搜索發(fā)現(xiàn)和搜索榜單三個欄目。除了搜索記錄,大部分的榜單和推薦主要是為了商業(yè)運營的目的而存在。比如外賣、電商平臺,其推薦和榜單功能并不意味要展示 “好” 的產(chǎn)品。
二、輸入關鍵字
1. 反饋方式
用戶在輸入關鍵字的時候一般會有兩種反饋方式。
第一種方式是實時匹配輸入結果,這種方式對搜索的精確度較高,同時也考驗著產(chǎn)品的響應速度。第二種方式是關鍵詞聯(lián)想,對精確度要求較低,講求一個模糊,搜索大致相近的內容。
為什么會出現(xiàn)兩種反饋方式的差異?我認為原因更多地可能與業(yè)務場景有關。
類似小紅書、知乎、百度貼吧等資訊、社區(qū)類產(chǎn)品,會有許多內容擊中一個關鍵詞,屬于一對多的關系。相反,類似餓了么、飛書等產(chǎn)品,對精確搜索有著更高的要求,目的性會更強。
2. 搜索目的
除了業(yè)務場景,導致搜索場景差異的原因來自用戶的不同訴求,每個用戶的搜索目的都是不一樣的。
舉兩個明確的例子:
- 模糊搜索(一對多):通過小紅書搜索牛肉該怎么做,會出來非常多的帖子。因為牛肉的做法不唯一,這不是一個精確的目的。
- 精確搜索(一對一):通過外賣平臺搜索 LeeLin 檸檬茶(非安利,但是是真的好喝),搜索結果會出來唯一結果,這是一個精確的目的。
對于這兩種搜索目的,可以給出明確的定義:
- 精確搜索:用戶搜索時有明確的目標,想在已知內容中快速定位所需信息。輸入的關鍵詞反映的是用戶想獲取的信息主題。
- 模糊搜索:用戶搜索目標不太明確,想在未知內容中探索信息。用戶對所需信息的主題和關鍵詞未完全理清,希望去發(fā)現(xiàn)和探索,難以結構化地表達所要解決的問題。
結合上面的例子和定義,總結一下用戶的搜索場景。
3 聯(lián)想模式
1)提供關聯(lián)結果
用戶輸入關鍵詞的時候會觸發(fā)展示關聯(lián)結果,這種做法在內容平臺被廣泛使用,比如下圖在小紅書搜索 citywalk 出現(xiàn)的關聯(lián)內容。
這種關聯(lián)結果展示能夠有效地降低用戶輸入成本,提升搜索效率。從用戶獲取網(wǎng)絡資訊和熱點的流程上看,大部分用戶對于尋求問題答案的途徑都大致相似,比如某天在豆瓣發(fā)現(xiàn)了一個大瓜,會上微博或小紅書搜索。從發(fā)現(xiàn)內容到搜索內容,這就是一種用戶路徑。
除了應用內搜索,部分應用還會針對關鍵詞進行顯示設計。比如在谷歌中搜索 “今日天氣” 會直接展示天氣數(shù)據(jù),甚至搜索一些特定關鍵詞還會觸發(fā)彩蛋。感興趣的可以搜一搜這篇文章:谷歌,互聯(lián)網(wǎng)界的 “彩蛋狂魔。
搜索“Super Mario Bros”(超級瑪麗兄弟),搜索頁面右側就會出現(xiàn)超級瑪麗的寶箱
2)商業(yè)化運營
聯(lián)想模式在商業(yè)化的運用也十分常見。在外賣軟件搜索 “咖啡”,除了展示商品,產(chǎn)品運營還會在其中穿插營銷內容和推薦產(chǎn)品,滿足有營銷訴求的商家。
總的來說,關鍵詞聯(lián)想主要用在兩個地方:
一個是用戶搜索時,可以給到提示的作用,方便找到想要的信息。另一個是用戶輸入的時候不用一個字一個字去敲,減少輸入成本。對于平臺來說,聯(lián)想功能可以用來做一些營銷推廣的活動。
在設計這種包含輸入詞的交互的時候,最好結合產(chǎn)品本身的目的和目標用戶的使用場景來思考,這樣可以讓用戶體驗更順暢。
三、解析關鍵詞
除了產(chǎn)品設計,在搜索功能中最重要的一環(huán)是搜索的邏輯。
用戶會輸入什么,會不會輸錯,一般會有哪些錯誤,對于錯誤應該如何解決?對這些疑問的解答構成了搜索功能中的核心環(huán)節(jié)。
產(chǎn)品經(jīng)理不能希望用戶的每次輸入都是 “正確” 的,符合自己要求的。更多情況下,用戶在搜索時出現(xiàn)拼寫錯誤、表達錯誤導致的搜索不準確、搜索無結果的情況經(jīng)常發(fā)生,且難以避免。
為了更準確的理解用戶想要搜什么,搜索系統(tǒng)通常會添加多種解析規(guī)則來增加系統(tǒng)對于用戶輸入內容的理解。比如預處理、分詞、改寫等方式。對關鍵詞的解析越精確,搜索功能更能為用戶帶來價值和滿足。
1. 預處理
預處理是對關鍵詞進行字符轉換、刪除、截斷等處理,將關鍵詞進行標準化和簡化,以更準確地理解用戶搜索意圖,提供更精準的搜索結果。
這個定義一聽有些復雜,不妨將預處理這個流程放在日常生活中去理解。什么叫做預處理?預處理可以理解為把從市場買回來的菜洗凈、分類處理,等待下鍋前的這一過程。
預處理的通常有 5 種方式,分別為:拼音轉文字、大小寫切換、繁簡體轉換、無意義字符移除、長度截斷。
1)拼音轉文字
示例:輸入 “chanpinjingli” 時會轉化為 “產(chǎn)品經(jīng)理”
場景:在 B 端 CRM 系統(tǒng)中搜索用戶姓名一直都是一件令人苦惱的事情,尤其是當用戶的姓名較為生僻的時候。這個時候通過拼音搜索能夠快速定位到用戶。
2)大小寫切換
示例:輸入 “B1-A156-t2” 時會轉化為 “b1-A1-P510”(負1層 – A1區(qū)域 – 510號車位)
場景:在 ERP 系統(tǒng)(企業(yè)資源計劃)中通常會有數(shù)量眾多企業(yè)物資信息。以商場為例,對于一些固定資產(chǎn),如商鋪、車位,甚至是衛(wèi)生間的馬桶都有各自的編號。通過大小寫字母混排的方式來查找資產(chǎn)的方式較為復雜,而將輸入的內容統(tǒng)一轉換為小寫字母就會更易查找。
3)繁簡體轉換
示例:輸入 “産品經(jīng)理” 時會轉為為 “產(chǎn)品經(jīng)理”,反之亦然
場景:通常適用于涉及到繁體字書寫的地區(qū)。
4)無意義字符移除
示例:忽略特殊字符,包括 emoji、顏文字、空格、數(shù)字符號、語氣詞等
場景:在沒有使用字符輸入限制的情況下,輸入無意義字符一般都會影響輸出結果,導致結果為空。在一些文檔搜索的場景中,作為特殊字符的空格也會導致搜索失敗。目前許多社區(qū)都有開源的《停用詞庫》可供調用,結合實際的業(yè)務場景就可以梳理出一套較為適合的詞庫。
5)長度截斷
示例:輸入字符超過上限,截斷上限字符后面輸入的內容
場景:搜索引擎通常會常用分詞的方式進行搜索。如果輸入一個詞組較多的長句,那么對于搜索匹配的壓力會大大加強,長度截斷更考慮搜索調用產(chǎn)生的負載。目前百度的輸入上限為 18 個漢字,Google 為 12 個詞。
總體來看,“拼音轉漢字”、“大小寫轉換”、“繁簡體轉換” 這三種方式是通過提高系統(tǒng)判斷規(guī)則的復雜程度,來減小用戶輸入的復雜程度,降低用戶的輸入難度和成本。“無意義字符去除” 和 “長度限制” 則是合理篩選關鍵詞,簡化表達,以提高搜索結果的準確性。
2. 分詞
當輸入關鍵詞和數(shù)據(jù)庫匹配時,用戶能夠很輕松地得到想要的答案。但是也要注意到一個問題,加入用戶輸入的關鍵詞無法與數(shù)據(jù)庫完全匹配呢?
一般出現(xiàn)無法完全匹配的情況時會采用分詞的形式,將一個句子或一個詞組拆分為多個 Term。Term 可以是單字或詞組,Term 的作用在于它能和數(shù)據(jù)庫形成匹配。
既然采取了分詞的形式,就接下來就需要考慮如何進行分詞。
在英文語句中,分詞是一件很 “自然” 的事情,組成句子的單詞具有固定的結構,書寫句子也習慣通過空格隔開。但中文的表達通常不會用空格,且無論采用哪種分詞方式都會形成不同的表達。
目前,大多數(shù)字產(chǎn)品采用的是基于詞典的分詞方式,即維護一個分詞詞庫。如果輸入的關鍵詞能在詞庫中找到對應詞組,則可以召回該詞組相關的內容。但是基于詞庫分詞存在一定維護成本,例如出現(xiàn)新詞時需要手動添加等。
以飛書搜索作為例子。在飛書文檔中搜索 “數(shù)據(jù)庫”,會出現(xiàn)包含 “數(shù)據(jù)庫” 關鍵詞的文檔。但在飛書文檔中搜索 “據(jù)庫”,則無結果?!皳?jù)庫”作為一個詞組既沒有命中分詞數(shù)據(jù)庫,也沒有文檔匹配內容。但如果將詞組隔開,我們還是能搜索到對應結果。
分詞技術廣泛應用于探索式搜索的產(chǎn)品場景中,通過對關鍵詞進行合理的拆分和重組,可以召回更多相關內容,強調的是召回率。在內容資訊類產(chǎn)品中,通常會應用分詞技術召回大量內容,以滿足用戶的查詢需求。
3. 改寫
改寫指的是將用戶輸入的關鍵詞調整為能和數(shù)據(jù)庫匹配的內容。這對搜索功能提出了新的要求:作為產(chǎn)品經(jīng)理需要知道用戶可能會以什么樣的方式進行輸入并及時調整。
改寫具體可以分為三種方式:
- 糾錯:改正用戶的拼寫,將錯誤的關鍵詞糾正為正確的關鍵詞
- 歸一:將不同的語言表達但意思相同的詞語統(tǒng)一轉換為標準詞語
- 擴展:對輸入的關鍵詞進行意義擴展,生成與其內容或行為語義相關的詞語列表(關聯(lián)搜索)
1)糾錯
在百度輸入 “appla” 系統(tǒng)會糾正為 “apple”,并以糾正詞進行搜索。這是糾錯在搜索中的運用。
相較于英文糾錯,中文關鍵詞的糾錯更為復雜。比如通過拼音輸入時存在模糊音、同音字的錯誤,通過五筆鍵入則會出現(xiàn)形近字錯誤等情況。
在騰訊的搜索技術文檔中,鵝廠的技術同學將搜索的錯誤類型分為Non-word Error
和Real-word Error
兩種,分別指 “不存在數(shù)據(jù)庫中的錯誤字符” 和 “由多個漢字組成的錯誤語句” 兩種類型。
說起來還是比較抽象,來看看具體的例子:
以上這些場景在搜索引擎中被廣泛使用,比如百度或者 Google。對于僅在產(chǎn)品內部進行搜索的應用來說,則可以根據(jù)用戶搜索場景和產(chǎn)品定位進行優(yōu)化,不要求搜索的準確率和復雜度。在平時使用電商、社交、工具類產(chǎn)品時可以留心觀察,幾乎不同產(chǎn)品的搜索糾錯能力不盡相同。
2)歸一
歸一解決的問題是用戶在日常表達中存在的語義差異。比如“價格”、“售價”、“價位”、“多少錢”、“怎么賣” 等表達都可以視作 “價格”。再比如 “作文寫法”、“作文怎么寫”、“如何寫一篇作文” 等表達都可以視作 “作文寫法”。
同樣,還是以百度搜索作為示例:
3)拓展
拓展在上文已經(jīng)有相關描述,參見 “輸入關鍵詞 – 聯(lián)想模式”,此處不再重復說明。
四、召回
將用戶的關鍵詞經(jīng)過解析,與數(shù)據(jù)庫中的內容進行匹配的行為稱之為召回。這個過程需要后端利用倒排索引技術,建立關鍵詞和數(shù)據(jù)庫內容之間的關聯(lián),以提高搜索查詢效率。
簡單來說,就是構建清晰的目錄結構,便于快速查找目標內容。查詢速度與召回環(huán)節(jié)的倒排索引建設質量直接相關。倒排索引建設得越合理。查詢速度就越快。
這一部分屬于我的知識盲區(qū),感興趣的同學可以搜索這篇文章:淺談互聯(lián)網(wǎng)搜索之召回
五、排序
當搜索結果不止一個的時候,通常需要進行排序。排序存在規(guī)則,合理的規(guī)則能夠有效地展示關聯(lián)結果,也能給企業(yè)帶來不菲的營銷利潤,如搜索引擎的競價排名功能。
一般來說搜索有兩種排序思路。一種是根據(jù)匹配程度和參數(shù)進行排序。比方說在餓了么搜索我歷史購買奶茶的記錄,那么首先匹配的是關鍵詞 “茶”,其次會按照時間倒序(參數(shù))進行排序。
第二種方式是算法打分排序,展示更受歡迎的內容。比如說微信的“搜一搜”、今日頭條、知乎等內容產(chǎn)品,會根據(jù)閱讀量、互動量、點擊率等多項指標來設計權重,并給每一篇文章進行打分,權重高者優(yōu)先展示。
六、展示結果
1. 搜索成功
在完成一系列的復雜流程之后,終于來到了搜索的最后一個環(huán)節(jié),結果展示。這是用戶唯一看到的內容(實際上沒有用戶會在意你的技術流程啊哈哈哈),所以搜索結果的展示需要力求清晰。
目前搜索引擎都會基于不同的關鍵字展示不同的結果。在算法和用戶畫像的加持下也就形成了過去互聯(lián)網(wǎng)產(chǎn)品渴望實現(xiàn)的 “千人千面” 能力。
如同上文中,搜索 “華為 mate60 售價” 會展示華為商城的跳轉鏈接一樣。搜索商品、人物、風景、概念都會出現(xiàn)不一樣的搜索結果。
PS:百度搜索真的好多廣告,只能用 Google 作為搜索示例了 = =、
其他產(chǎn)品的展示結果也在發(fā)揮著關鍵作用。比如一個男生或女生再淘寶搜索 “男裝”,在排除推廣商品后,看到的結果是完全不一樣的。
同時,也需要注意到搜索結果經(jīng)常出現(xiàn)一種糟糕的情況:看菜下碟。不同用戶在旅游軟件上搜索同一家酒店,價格會出現(xiàn)不一致的情況。這種行為在幾年前經(jīng)常被報道,如今相關的新聞變得很少了。
在游戲資訊類產(chǎn)品來說,展示結果相當重要。比如 Tap Tap 和網(wǎng)易大神。根據(jù)用戶搜索的關鍵詞不同,結果的呈現(xiàn)也各具特色。
關于搜索結果頁的設計,我會在第四講 – 券商搜索功能設計中進行詳細分析,敬請期待~
2. 搜索失敗
用戶搜索并不能保證每次總是成功,在搜索內容和搜索規(guī)則無法形成匹配的情況下,需要考慮出現(xiàn)搜索失敗的情況。一般來說,針對搜索失敗場景的產(chǎn)品設計有三種類型:
- 亂碼:可以理解為沒有針對搜索結果出現(xiàn)失敗進行設計,一般較少出現(xiàn)
- 分詞:在無法精確匹配的前提下,搜索關鍵詞中拆分出來單詞和詞組進行搜索
- 空態(tài):展示一個搜索失敗頁,告知用戶沒有搜索到相關內容
搜索出現(xiàn)空態(tài)結果并不意味著好或壞。它可能意味著搜索功能欠缺了某些部分,也可能在無形中規(guī)范了用戶的搜索行為。搜索出現(xiàn)空態(tài)或異常情況是需要進行跟蹤的,這有利于產(chǎn)品及時進行調整,優(yōu)化搜索規(guī)則。
七、小結
本篇的結論很簡單,在設計搜索功能的時候,作為產(chǎn)品經(jīng)理并不能面面俱到,要求功能達到大廠搜索技術團隊的水準。我們應該做一個好的搜索功能,而不是做一個完美的搜索功能。
每一個產(chǎn)品的業(yè)務場景不同,功能重要性不同。即便百度和 Google 同為搜索引擎,但他們都有著不同的業(yè)務目標,更不要提產(chǎn)品的功能規(guī)劃和團隊的技術水平并不都是一致的。
在設計產(chǎn)品的時候要考慮性價比,ROI 最優(yōu)的解決方案。在產(chǎn)品設計中更應該強調做一個好的產(chǎn)品,能滿足用戶需求的產(chǎn)品,而不是做完美的產(chǎn)品。
本文由@Brinkey 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉載。
題圖來自 Unsplash,基于 CC0 協(xié)議。
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務。
- 目前還沒評論,等你發(fā)揮!