如何做出優雅的搜索功能?

2 評論 16519 瀏覽 99 收藏 10 分鐘

搜索從宏觀上來看有兩種,一種是搜索引擎,另一種是垂直搜索。搜索引擎有 Google、Bing、百度、搜狗等等,而垂直搜索則是在大多數產品內置的對內容的檢索功能。此處僅討論垂直搜索。

一、搜索的核心

搜索的核心:

  • 根據提供的已知信息,給用戶提供符合各方利益訴求的內容。利益訴求包括:用戶的利益訴求(如優質的內容)與產品的利益訴求(如搜索引擎廣告)
  • 性能:快速的提供內容
  • 展示結果時,考慮用戶體驗

比如 Airbnb 算法中考慮的內容有:

  • 搜索主體的歷史偏好
  • 搜索結果的質量
  • 整體的平衡(新房源的適當傾斜)

二、搜索的幾個主體

  • 搜索的用戶
  • 輸入的內容(關鍵詞/圖片/語音/二維碼)
  • 搜索結果(屏蔽部分結果)
  • 搜索結果的排序方式。

2.1 搜索的用戶

一個簡易的搜索功能,可能有關鍵詞+搜索結果就可以。但是一個完善的搜索功能,卻要通過對搜索主體偏好的猜測,對輸入內容的語義分析,對搜索結果的質量評估分析,對搜索結果的排序方式機器/人工調整為用戶呈現適當的結果。

談到搜索的主體,時常關聯的詞匯是『大數據』,通過分析用戶的行為來對用戶建立起立體的用戶畫像,從而為用戶推送合適的內容。譬如搜索引擎中廣告的,會根據用戶的過往搜索與瀏覽歷史進行不同的展示。

大多數搜索并不需要考慮到搜索主體(鑒于收集用戶信息分析用戶偏好的成本非常高),需要考慮到搜索主體的,要不是提供內容,要不就是是提供商品。

2.2 輸入的內容

這里一共要談兩個部分,一是輸入的內容,即關鍵詞(或其他形式的輸入),二是對輸入內容的分析。

輸入的內容主要有以下幾種類型,文字(如 Google 和百度)、圖片(百度、Google 、淘寶的圖片搜索)、語音(Siri 和出門問問)、二維碼等。

665477-6aeec8888b95d7c1

淘寶的圖片搜索

狹義的搜索輸入的內容主要是文字形式的關鍵字。并通過關鍵字匹配來尋找搜索結果。

另外,這里有很重要的一項會影響到搜索結果質量的功能,那就是對輸入內容的分析(通常情況下是兩種,一是語義分析,二是圖片識別)。

搜索的核心在于通過用戶的輸入判斷用戶的需求,從而給出搜索結果。這里對于用戶輸入內容分析的能力就直接影響到搜索功能的質量。劣質的搜索功能無法分析語義自動分詞,只能給出完全匹配的結果。譬如,用戶輸入『大連衣裙』,劣質的搜索功能就有可能給出這樣的結果『大連』『連衣』或者根本無法顯示匹配結果。

語音搜索的分析也是通過語音識別將其轉化為文字,然后進行搜索。因此不提。

2.3 搜索結果

搜索引擎的結果有各式各樣的結果,而在應用內的垂直搜索也有可能有多種類型的結果。而大多數產品的做法是將搜索結果按照類型分為幾種,用戶可以點選 tab 按鈕切換。

665477-137a0471fab18937

網易云音樂的搜索結果

2.4 篩選/排序方式

對搜索結果的排序分為默認排序和選擇排序。

產品內的默認排序通常是多種方式下的排序。例如百度,搜索結果下的默認排序可能考慮了網頁的質量、相關程度、廣告、發布時間、是否為百度的自家產品等。

但大多數產品會提供一種自定義的篩選和排序。例如淘寶,各種產品的數據高度結構化,可以通過不同維度進行篩選和排序。

665477-d5e543dcdf31a253

手淘的排序

665477-fbdc5ef67fe28233

手淘的篩選

在理想情況下,搜索結果的默認排序應該有算法完全決定,越少的人工參與越好。但事實上大多數產品其實并不擁有那么強大的搜索算法,大多數產品也并不需要那樣強大的搜索功能,這時適度的人工干預就很重要了,不僅可以保證搜索結果的質量,還可以根據盈利方面的考慮對搜索結果進行調整。

三、其他的搜索

搜索不一定是一個獨立的功能,相信細心的你也曾發現過內嵌在其他功能的搜索。

你想到了什么呢?

不知道你想到的和我想到的是不是一樣,那就是『微博』

微博和 Twitter 在發布的時候有一個特別的小功能,@(提及某人)和#(帶上話題)。這個操作雖然有一定的學習成本,卻是一個非常有巧思的設計。

665477-6e4214e34d149a8d

Twitter中的@功能

665477-d6b84ac5eb6f4205

Twitter 中的#功能

四、如何設計一個『優雅』的搜索功能

以上說了那么多,似乎都沒有涉及如何設計搜索功能。

我認為設計搜索功能,甚至任何一個新的 feature 都應該首先考慮的問題是:為什么要增加這個功能,這個功能要解決什么問題,解決這個問題對于產品有多重要。

在理想情況下,我們都想做出一個比百度更好的搜索引擎,即使是在應用內。但是實際進行過程中我們會遇到各種各樣的限制,這包括了有限的工期,有限的技術資源,有限的技術能力等等。除此之外,還有一個更現實的問題是,我們需要那么強大的搜索功能嗎?

任何的投入都要講求性價比,投入不僅包括金錢,還包括時間,尤其對于互聯網企業來說,早期的時間都是非常珍貴的,必須要用到投入產出比最高的功能上。如果你是一個小的電商網站,SKU 不過幾千,數據也不夠結構化,那一個強大如淘寶搜索的功能很大程度上是浪費的。任何時候都要尋找當前階段下的 MVP(最小化可行產品)。

以上是起步前要了解的第一個問題:搜索功能的范圍控制

第二個問題是,搜索的算法。

算法是在搜索功能設計過程中最頭疼的部分,如何確定算法呢?

由于算法直接決定了開發的工期,所以需要根據考慮實際的資源情況,數據的結構化情況和產品的實際需求。

  • 最簡化版:根據與關鍵詞的匹配程度顯示
  • 簡化版:加入搜索結果的權重(可以人工,也可以用算法賦值)
  • 中間版:加入人工調整位置
  • 復雜版:無限制,加入各項考慮,如用戶的個人偏好,相似用戶的偏好,產品的整體政策等。

算法這里,我也是門外漢。沒有參與過非常大的搜索引擎項目,所以只說到這里~并不是偷懶哦,只是能力所限。

第三步是,搜索的交互

同搜索的算法不同,搜索的交互可以給用戶直接的觀感?!航换ァ槐取核惴ā坏母倪M更能帶給用戶明顯的感受。

交互的設計通常有以下幾個方面

  • 搜索頁面
  • 內容輸入過程
  • 搜索結果的展示
  • 搜索結果的篩選與排序

詳細的內容可能需要展開另外一篇文章來描述,此處就不細講了

 

作者:張小四兒,微信公眾號:xiaosierzhang

原文鏈接:http://www.jianshu.com/p/da29924184de

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 我感覺更像是一篇知識普及,最關鍵的部分都帶過了。。不過癮那

    來自北京 回復
  2. 謝謝

    來自廣東 回復