酷播亮新聞
最棒的知識補給站

如何設計搜索功能的邏輯

『搜索』的目的是幫助用戶快速找到他們想要的內容,在很多產品中有舉足輕重的作用。 用戶通過知乎的搜索尋找問題的答案;通過淘寶的搜索篩選想要的商品;通過Airbnb的搜索尋找合適的房源等等。

搜索功能乍一看很簡單,其實涉及的邏輯很多,所以文章篇幅較長,接下來我們就通過4個方面來介紹一下關於搜索功能背後的邏輯。

一、搜索入口

搜索入口的位置,由產品對搜索功能的依賴程度決定,依賴程度越高,搜索入口的位置就會越重要。 常見的搜索入口有三種形式,

第一種在頁面底部的tab

大家都知道底部tab是一個APP中最重要的位置,把搜索入口放此出的APP對搜索功能的依賴程度極高,例如App Store,用戶下載一個應用有兩種方式,第一種是通過分類 和推薦,第二種是通過搜索,大家可以想一下自己平時在下載APP時候大多是通過哪種方式下載的,預計60%以上是通過搜索轉化的。

第二種在頁面頂部的位置

有的懸停在頁面頂部,有的在頁面內,跟隨頁面滑動。 這類搜索入口特別常見,隨便打開你手機上的幾個APP,都可能看到這樣的搜索入口,這類APP對搜索功能的依賴程度依然非常高,相對於第一種有可能只是因為產品類型 不同或者排版的限制,例如網易嚴選,用戶想快速找到合心意的商品,可能最便捷的方式還是搜索。

第三種在頁面右上角放一個小icon

這類應用相對於前兩類,對搜索功能的依賴就不是那麼高,他們各種推薦形式,以及分類等功能會瓜分搜索的流量,比如ENJOY,還有大家熟悉的今日頭條、36氪等內容 資訊類應用。

當然還有其它很多不同方式去展示搜索入口,很多APP由於內容的限制、排列方式的限制等客觀因素,會妥協搜索入口的位置,沒有什麼好壞之分,關鍵是要適合自己的產品。

二、輸入搜索內容

設計輸入搜索內容時,要遵循的原則就是讓用戶快速完成輸入過程,同時盡可能預留一些運營能力。 無論是搜索聯想,還是搜索歷史,或者是分類搜索,雖然功能不同,但目的都是為了從讓用戶能夠快速完成輸入過程,進入搜索結果。

輸入內容的形式:文字、圖片、語音

1、文字輸入大家都很熟悉,這裡主要是注意一下輸入域的一些基本限制條件和對應的邏輯,比如最多可以輸入多少個字符;支持不支持特殊字符;輸入空格和輸入特殊字符對應的toast提示 等等。

2、圖片輸入也比較常見,例如手機淘寶,通過圖片搜索商品,原理就是通過人工智能圖像識別技術,分析出來圖片裡面商品,或者直接跟數據庫裡的商品圖片做對比。

3、語音輸入形式比較多樣,最基礎的就是語音轉文字功能,還有比如蝦米音樂和網易云音樂的聽歌識曲,通過語音搜索歌曲。

搜索聯想

搜索聯想是指用戶輸入部分內容,然後系統根據這些內容聯想出完整內容。 聯想內容可以在原有內容的前面、後面、或者中間。 這裡產品容易忽略的是聯想詞的排序規則以及聯想詞的數量,假如我們按照聯想詞的被觸發次數由高到低排列,如下圖,毛巾累計被觸發8w次,毛衣累計被觸發6w次,所以 聯想詞毛巾排在毛衣前面。 數量就是說最多展示多少個聯想詞。

修改輸入內容

修改輸入的內容一般有兩種方式,一種是鍵盤上的退格鍵逐字刪除,另一種是當輸入框裡有內容時,輸入框後面出現一個小叉號,點擊叉號可以清空輸入 框。 這個不難理解,當輸入的字比較多時,退格一個一個刪除效率比較低,這時候可以點擊小叉號直接清空輸入框。

搜索歷史

搜索歷史基本上是一個必備功能,用戶可以通過上一次的搜索內容,直接到達搜索結果頁。 應用場景也很簡單,比如昨天看了毛衣,但是猶豫沒買,今天想接著看看,有搜索歷史的話,就不用再次輸入“毛衣”了,直接在搜索歷史裡點擊即可。 這裡產品在出原型的時候也要把排序規則和展示數量寫出來,比如按照時間倒序排列,最多可展示20條。

熱門搜索

熱門搜索概念也比較簡單,就是把最近一段時間被搜索次數最多的詞展示出來,去引導用戶看一些最近熱門的商品或內容,不過隨著時間發展,熱門搜索又被賦予了運營能力,當平台 想去主推某商品或內容時,可以把“它”偽裝到熱門搜索里,如下圖,“LEE”就是運營人員後台添加的詞,並不是真正的熱門搜索,當然這裡面也少不了商業推廣。 產品在原型裡寫邏輯時,首先要寫清楚1、是否具備運營能力;2、運營位最多有幾個;3、運營位和熱搜詞怎麼排序;4、熱搜詞最多幾個;5、 熱搜詞的來源;6、熱搜詞的排序規則。

分類搜索

當平台比較大,內容類別比較多時,很多產品就會提供分類搜索的功能,幫助用戶更快速的找到想要的內容,例如淘寶APP,在搜索的時候就可以選擇是搜索全部,還是搜索天貓 ,或者是搜索店鋪。 分類搜索的功能和後面我們要講到的搜索結果的分類展示其實是對應的,都是給繁雜的內容分了一下類,只不過一個是在搜索動作前分類,一個是在搜索動作後分類。

默認提示詞

默認提示詞如下圖所示,就是在輸入框內默認有的內容,這種內容一般有兩種,一種是引導用戶去輸入,例如“請輸入想要找的商品”;另一種就是運營 推廣,例如下圖默認提示詞是“LEE高端牛仔褲”,這就是明顯的商業推廣,這時候如果用戶不輸入任何內容,直接點擊搜索,默認就會去搜“LEE高端牛仔褲”。

多詞搜索

對於多詞搜索的邏輯我也是一知半解,不知道大家還有沒有印象,早期淘寶搜索“毛衣套頭”和“毛衣套頭”搜索結果是不同的,當時好像是因為像“大碼”、“套頭”、 “藍色”這些屬性詞,一般都不會寫到商品標題裡,所以當用戶輸入“大碼毛衣”搜索結果相對於“毛衣”就會有偏差,不過現在是一樣的,現在可能是人工智能 已經可以準確的區分哪些是商品的屬性詞,哪些商品的關鍵詞。 我也找了幾個還在採用這種方式的APP,說實話,並沒有感覺到對搜索結果有什麼太大的促進作用,大家也可以體驗一下,例如在豆果美食APP輸入“西紅柿雞蛋” 和“西紅柿雞蛋”,可以對比一下搜索結果。

三、輸出搜索結果

“輸出搜索結果”的設計要遵循的基本原則是讓用戶快速獲取到想要的內容。 下面4個方面都是圍繞這個原則展開的。 搜索結果的展示形式以及搜索結果的篩選條件,目的都是為了縮小選擇範圍,幫助用戶快速選擇;搜索結果的展示內容是通過分析,確定哪些信息是對用戶有用的,就展示哪些內容。

搜索結果的展示形式

常見的搜索結果展示形式有兩種,一種是多個頁面分類展示,一種是一個頁面堆疊展示,這個也比較容易判斷,當不同類型的內容都比較多時,比較適合用分類展示的方式; 當內容類型單一時,適合在一個頁面內展示。 例如“知乎”,同時採用了兩種展示形式,我們搜索“旅行青蛙”關鍵字,綜合裡面就是我們所說的堆疊展示,展示了用戶、話題、以及內容,下面就全是內容。 當然我們還可以點擊頂部的分類展示tab,選擇自己想要搜索的內容類型。 大家可以體驗一下。

搜索結果的篩選條件

篩選條件存在的意義是縮小選擇範圍,讓用戶可以更快速,更準確的找到自己想要的內容。 具體的篩選條件要根據產品本身的內容來確定。 例如“網易嚴選”,他的篩選條件比較簡單,只有一個價格和分類,我們也可以體驗一下淘寶、京東,他們的篩選條件會比較多。

搜索結果的展示內容

搜索結果中展示的具體內容是通過分析用戶需求,找到最能命中用戶需求的信息。 例如“京東”,搜索結果中展示的內容有,商品圖片、商品名稱、商品價格、商品評價、好評率、推薦語、促銷信息、產品規格。 還有比如一些視頻類產品搜索結果中一般展示視頻縮略圖、視頻時長、視頻標題、視頻發佈時間等。 (我們可以看到京東搜索結果的展示方式是我們上面說的堆疊展示,以及下面的篩選條件)

搜索結果的rank邏輯

搜索結果的rank邏輯是搜索功能最核心的邏輯之一,需要根據產品的不同發展階段不斷去優化。 那麼為什麼要對搜索結果進行排序呢? 首先簡單說一下搜索功能的執行流程,當用戶搜索一個關鍵字,這時候程序執行一套算法算出匹配度,內容這時候已經產生一種按匹配度高低的排序,然後接著執行“搜索結果的rank 邏輯”,對按照匹配度的排序進行一定的調整,產出新的排序。

下面我們就簡單舉個例子,比如電商類產品:

1、我們去搜索“毛衣”關鍵字通過執行匹配度算法,把數據庫裡能匹配到該關鍵字的所有商品都拉出來,因為沒有其它條件限制,所以什麼樣的商品都可能被展示出來,這 顯然不是我們想要的

2、執行搜索結果的rank邏輯,這個rank邏輯是什麼呢,例如,收藏數是一個因素,收藏越多的,排序更靠前一點;瀏覽量是一個因素,瀏覽越多的,排序也更靠 前一點;還有轉化率、寶貝詳情頁的停留時長、好評率、主圖效果、商家信譽等等很多因素,rank邏輯就是把這些因素融合到一起,每個因素佔不同的權重,然後最終給 出一個排序結果。 聽起來好像也沒什麼難的,其實不然,比如,按照上面說的,等產品發展了一段時間,是不是那些老的商家就佔優勢,而新商家得不到曝光,產生馬太效應。 這只是最常見的一種問題,這就是剛才我們說的,需要根據產品的不同發展階段去不斷優化rank邏輯。

3、通過rank邏輯,用戶看到更合理的排序。 上面我們說的篩選條件,其實就是用戶可以自主選擇按照哪個影響因素去排序。

四、搜索異常態

異常態是指在非正常條件下出現的狀態。 這也是很多初級產品容易忽略的地方,下面我們一塊兒來看一下搜索功能都有哪些異常態。

搜索無結果

搜索無結果可以分為兩種情況,一種是一個內容也沒搜到,另一種是搜索的內容較少。 這兩種情況有的會分開,有的會單獨處理。 處理方式一般就是一個空白頁,給一個小icon,一句安慰用戶的提示語,讓用戶不至於那么生氣,或者是像下圖一樣,給出其它選擇,這樣不至於讓用戶的操作走向一條“死路 ”。

首次搜索

首次使用搜索功能,一般都會缺少某些數據,比如“搜索歷史”,這時候要考慮到這些功能處理方式,比如要不要保留搜索歷史的標題等等。

網絡異常

網絡異常是每個功能都要考慮的情況,在搜索功能中主要考慮三個問題:

1、異常提醒在哪個頁面更合適 ,用什麼樣的方式提醒打擾用戶最少,比如,當沒有網的時候,用戶應該還能正常點擊搜索框,進入搜索頁面,這時候由於網絡問題“熱門搜索”功能可能顯示不出來,這時候應該 給用戶一個網絡異常的提醒。

2、聯想詞頁面的網絡異常處理方式 ,常見的有3種,第一種是直接沒有聯想詞頁面,第二種是有聯想詞頁面,但是是空白的,第三種是用上一次搜索的聯想詞內容,個人還是傾向第二種 處理方式,大家可以試一下。

3、搜索結果頁的網絡異常處理方式 ,常見的也有2種,第一種是點擊完搜索直接又跳回來,toast提示異常,第二種是在搜索結果頁給一個異常狀態,告訴用戶網絡異常。 這其實上面我們說的異常提醒在哪個頁面更合適是一個問題。

交互: 最後再插一句關於交互方面的,就像搜索框什麼時候獲取焦點鍵盤彈出,什麼時候失去焦點鍵盤消失等等,例如在“聯想詞頁面”我們滑動聯想詞,搜索框就失去焦點,鍵盤消失, 這些都要考慮到。

到這裡整個搜索功能的邏輯就梳理完了,希望可以對大家有所幫助,非常感謝。

 

本文由 @一捆書 原創發佈於人人都是產品經理。 未經許可,禁止轉載

題圖來自 Unsplash,基於 CC0 協議

如有侵權請來信告知:酷播亮新聞 » 如何設計搜索功能的邏輯