如何設計搜索功能的邏輯

18 評論 45176 瀏覽 338 收藏 19 分鐘

『搜索』的目的是幫助用戶快速找到他們想要的內容,在很多產品中有舉足輕重的作用。用戶通過知乎的搜索尋找問題的答案;通過淘寶的搜索篩選想要的商品;通過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 協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 我想問下算法需要產品經理提供什么東西嗎?現在公司很多篩選匹配的規則邏輯都讓我去寫好給開發,完全寫不來啊,頭大

    來自浙江 回復
    1. 好兄弟,跟你一樣

      來自北京 回復
    2. 哈哈哈,畫了一大堆流程圖,開發寫了一年還沒寫完,說太復雜了

      來自浙江 回復
  2. 學習了,感謝!

    來自黑龍江 回復
  3. 求教大神,聯想詞的推薦算法是什么呢,如果做到最精確地聯想到用戶最需要的詞呀?

    來自北京 回復
  4. 請問聯想搜索詞的排序問題,上面所說毛巾累計被觸發8w次,毛衣累計被觸發6w次,這里的“觸發”次數指的是什么,有用戶搜索一次算作一次觸發嗎?渴求答案中…… ??

    來自廣東 回復
  5. 我想問一下 聯想詞的數據是怎么來的

    回復
    1. 同問

      來自北京 回復
    2. 同問

      來自四川 回復
    3. 這個不是冷啟動就需要有的數據嗎

      來自福建 回復
  6. 或者是像下圖一樣,給出其它選擇,這樣不至于讓用戶的操作走向一條“死路”,然而沒有圖哇。

    來自陜西 回復
    1. 太抱歉了,圖沒有傳上去,關于搜索無結果頁的處理,第一種就是頁面提示“您搜索的內容不存在”這時候用戶的動作只能是返回,重新搜索。
      第二種就是頁面除了給第一種提示,還會給用戶其它選擇,比如,搜索的內容雖然不存在,但是給用戶推薦相關的內容。形式多種多樣。

      回復
  7. 不好意思 請教一下 搜索無結果您的第二種情況可以詳細說一下嗎 有一點疑惑 還有他的處理方式

    來自四川 回復
    1. 你說的第二種情況是搜索結果內容少嘛?

      來自江蘇 回復
    2. 是的

      來自四川 回復
    3. 抱歉,圖沒有傳上去,直接跟您說一個案例吧,網易嚴選,您首先搜索一堆亂七八糟的,這時候會出來搜索無結果頁面,并且下面給了一個為你推薦列表。這種就是當搜索無結果時給了空白頁 其它轉化路徑。

      然后您再搜索比如“毛衣藍色”,這個和上面情況不同,因為網易嚴選上有毛衣,但是藍色毛衣沒有或者不多,所以出來的搜索結果頁是為你找到其它相關商品。這種就是搜索結果較少時給了其它轉化路徑。

      如果簡單處理就是搜索無結果,直接就提示無結果,搜索結果較少,就有幾個顯示幾個。

      回復
  8. 又學習到一些東西!謝謝作者!

    來自四川 回復
    1. 互相學習

      來自北京 回復