如何從0到1搭建站內(nèi)搜索?
本文從為什么要做站內(nèi)搜索出發(fā),對做站內(nèi)搜索存在的問題和具體設(shè)計步驟展開了梳理和分析,并從用戶角度對需要注意的問題進行了總結(jié),與大家分享。
一、為什么要做站內(nèi)搜索
對于一個單獨的內(nèi)容站來說,搜索其實不算是用戶的常用功能,因為在絕大部分情況下,用戶會更加偏向于詢問他人,也就是傳說中的伸手黨。當(dāng)無法從他人獲取自己想要的內(nèi)容時,用戶才會傾向于去找進行搜索這個動作,而這個動作的發(fā)生環(huán)境通常也不是在一個單獨的內(nèi)容站內(nèi),更多地會更偏向使用 Google、百度等搜索引擎。
站在用戶的角度,這樣做當(dāng)然是更有意義的,能夠用較低的成本增加找到自己想要內(nèi)容的幾率。但是與此同時,一個單獨的內(nèi)容站為什么還需要自己做搜索呢?
1. 讓用戶盡可能少地離開網(wǎng)站去獲取信息
如果讓用戶都去通過搜索引擎獲取本站信息,用戶搜索關(guān)鍵詞的結(jié)果排序里,你的網(wǎng)站不一定能夠進入第一頁內(nèi)。我們其實也都知道讓搜索引擎去獲取本站信息得以被搜索的初衷,不是去維護現(xiàn)有用戶,而是希望獲得更多精準用戶。
所以,站內(nèi)搜索的主要目的是提高用戶使用本站的深度,獲取用戶搜索關(guān)鍵詞數(shù)據(jù)等。不過這部分需要時間去積累。
2. 部分網(wǎng)站不開放數(shù)據(jù)
有些網(wǎng)站由于業(yè)務(wù)上、戰(zhàn)略上等等原因,不會開放數(shù)據(jù)給搜索引擎使用,那么為了降低用戶找到內(nèi)容的成本,提供站內(nèi)搜索就是必然的選擇。
這種現(xiàn)象多出現(xiàn)于電商、O2O 等平臺,同時也由于移動互聯(lián)網(wǎng)的發(fā)展,入口和用戶習(xí)慣的改變,導(dǎo)致信息孤島急速擴張,更多的平臺選擇了只有部分開放甚至不開放數(shù)據(jù)。(現(xiàn)在也有巨頭在嘗試打破這個現(xiàn)象,比如說曾經(jīng)的小米傳送門,和現(xiàn)在的微信搜一搜)
3. 用戶使用習(xí)慣的改變
這一部分其實前面已經(jīng)提到了,當(dāng)前使用互聯(lián)網(wǎng)的第一大入口已經(jīng)從瀏覽器等傳統(tǒng) PC 環(huán)境轉(zhuǎn)向移動設(shè)備上的 App。呈現(xiàn)給用戶的形式再也不是一連串不知所謂的網(wǎng)址,而是手機桌面上可見的、鮮艷的 App 圖標,至于傳統(tǒng) PC 上用戶用得很多的網(wǎng)站聚合頁,也更多被各種 App Store 所替代。
當(dāng)用戶進入 App,呈現(xiàn)給他的就只有當(dāng)前 App 的內(nèi)容,這種情況下用戶本能地會去選擇使用 App 內(nèi)的搜索。
不過做站內(nèi)搜索也有一些需要說明的問題:
(1)開發(fā)成本相對較高
如果一旦要求高一點,希望做一個體驗還過得去的站內(nèi)搜索,涉及的東西就很多了,大體上可以分為:
每一部分都直接影響到最終的用戶體驗。
當(dāng)然如果隨便一點,或者內(nèi)容復(fù)雜度低,MVP 試行等等,都可以考慮先直接用 SQL 去模糊查詢。
- 搜索詞處理(糾錯、改寫、分詞等)
- 關(guān)鍵詞和數(shù)據(jù)的匹配(標題匹配、內(nèi)容匹配、生產(chǎn)者匹配以及權(quán)重)
- 排序(時間、相關(guān)性、數(shù)據(jù)類型)
(2)投入產(chǎn)出比相對較低
前面說到了開發(fā)成本較高,那么在開發(fā)完成之后,這個功能的使用率會是多少呢?搜索是一個主動行為,在沒有額外機制和獎勵的情況下,用戶是被動的。同樣的,除非是知網(wǎng)、淘寶、知乎這種平臺,在絕大部分平臺上,這項功能的使用頻次必定不會太高。
這也屬于那種重要但不緊急的任務(wù),站內(nèi)搜索對于一個網(wǎng)站的必要性就有點像是,手機上發(fā)短信的功能,用戶可以不用,但是你不能沒有。
(3)內(nèi)容量問題
搜索不到內(nèi)容是一個搜索功能使用的時候最尷尬的時候,盡管可以通過一些手段,比如說相似內(nèi)容推薦、熱門搜索推薦等等;但是不可否認的是,在正常情況下(用戶搜索正常詞句,且與平臺相關(guān))如果搜索不到內(nèi)容,盡管做了這些處理,但依舊是沒有徹底解決根本的用戶效率問題。
所以,在做這個功能的時候,平臺的內(nèi)容量一定是必須要考慮的問題。
二、搜索:詞、匹配、排序
在講具體內(nèi)容之前,需要給大家先介紹一下搜索引擎搜索方式—— Site。
這應(yīng)該也算是大家都會經(jīng)常用到的搜索技巧了,這種搜索方式其實完全可以理解成各大搜索引擎給網(wǎng)站提供的免費站內(nèi)搜索。
那就有個問題出現(xiàn)了,為什么不去使用搜索引擎的 Site 方式作為網(wǎng)站的站內(nèi)搜索呢?這樣的網(wǎng)站其實是有一些的,比如說 V2EX。
用搜索引擎的站內(nèi)搜索好處有很多,比如說開發(fā)成本極低,用戶使用成本低,搜索精準度相對較高等等
但是壞處其實也有一些:
- 首先是排序,搜索引擎的排序算法是你無法干預(yù)的,這就導(dǎo)致無法提供業(yè)務(wù)上所需要的排序;比如說商品網(wǎng)站,搜索電飯煲,搜索引擎可能更偏向相關(guān)度、時間等等,但是其實在業(yè)務(wù)層面,銷量、好評率等等也是非常重要的考量因素,而這些數(shù)據(jù)不說搜索引擎能不能納入權(quán)重,就算能,那這些數(shù)據(jù)是否能夠提供給第三方也是個問題
- 然后是網(wǎng)站類型不同導(dǎo)致的數(shù)據(jù)類型問題,資訊、問答、社區(qū)、商品等等類型的平臺,所提供可供搜索的內(nèi)容是完全不一樣的,而現(xiàn)在搜索引擎很大程度并不能完全滿足絕大部分的內(nèi)容類型。
- 最后就是更新,目前想要讓搜索引擎快速收錄網(wǎng)站鏈接的方式中最主流的是站點地圖,但是站點地圖的最大問題就是更新不及時,也很難預(yù)測到什么時候會編入索引,什么時候會收錄。
1. 搜索詞處理
搜索詞解析方式目前比較普遍一點的就是分詞和糾錯。
前者目前來講,稍微好做一點。GitHub 上也要大量開源的分詞框架庫可以使用,同時也支持自定義。這一部分建議之后要好好收集一下用戶的搜索詞,看看分詞出來的詞語是否切合用戶當(dāng)時希望表達的意思。同時也要根據(jù)業(yè)務(wù)調(diào)整,比如說在電商平臺搜索 ”智能電視“,不能結(jié)果出來只有 ”智能“ 和 ”電視“,”智能電視“ 這個詞本身就應(yīng)該也作為一個關(guān)鍵詞存在。
后者難度稍微高一點,因為現(xiàn)在的糾錯不在于說沒有方法去做,而是在于說假如不契合業(yè)務(wù),可能會導(dǎo)致一些奇怪的結(jié)果。
尤其是錯誤糾正方面(糾錯的流程大體為 錯誤字(詞)識別 → 錯誤字(詞)糾正)。不過錯字(詞)有時候確實會影響到分詞效果,進一步影響到搜索的結(jié)果,所以這個還是有必要去做的,不過可以考慮用戶量再大一些,數(shù)據(jù)更加豐富的時候去做會更好。
以及后面可以涉及到更加深入的用戶搜索詞預(yù)測,這個就更加復(fù)雜了,筆者也不了解,就不多說了。
2. 匹配
互聯(lián)網(wǎng)上的能看到的內(nèi)容都可以叫做數(shù)據(jù),而絕大部分數(shù)據(jù)都會存在于數(shù)據(jù)庫的一張一張表之中。匹配的根本就是將搜索詞拿來去這些表里查找,找到合適的數(shù)據(jù)。
但是這樣做效率太低了,為了提高效率和精準度,自然要規(guī)定一下搜索的范圍,所以通常我們會對搜索進行分類處理,比如說這個關(guān)鍵詞是搜索商品的,這個關(guān)鍵詞是搜索文章的。
當(dāng)然,讓用戶去選要搜什么分類已經(jīng)是古早互聯(lián)網(wǎng)時期的做法了,現(xiàn)在更加常見的做法是展示出所有的內(nèi)容,但是分塊展現(xiàn),比如說知乎,綜合下就帶有話題、專欄、問題三種形式。
上面說的是匹配的范圍,匹配還有另外一個重點就是匹配的覆蓋面:
同一個類型的數(shù)據(jù),比如說一篇文章,可能包括標題、作者、時間、內(nèi)容、評論等等數(shù)據(jù)。那么你的匹配是要覆蓋到哪些數(shù)據(jù)?標題?作者?時間?或者內(nèi)容?
如果上面很多都想做匹配的話,那就叫多字段匹配或者多字段搜索,最簡單的方式就是把多個字段組合起來建索引。
另外,如果說你還希望搜索匹配這篇文章的內(nèi)容,而文章的內(nèi)容通過都是很長的富文本或者文本形式,那么可能你還需要使用全文匹配來幫助你。
以上兩種其實只是目前比較常見的搜索匹配方式,技術(shù)領(lǐng)域中有很多方法來解決這些問題,但是還是建議產(chǎn)品有時間可以多了解一下,可以更加理解技術(shù)的局限、邊界和成本。
3. 排序
排序一般會根據(jù)相關(guān)度、內(nèi)容用戶相關(guān)數(shù)據(jù)、時間等等情況排序,比較依賴于業(yè)務(wù)屬性。比如說新聞網(wǎng)站,時間維度的權(quán)重可能就會比較重;電商網(wǎng)站可能就比較看重銷量、知名度、利潤、優(yōu)惠(比如說特定打折時期,將品類中讓利較多的商品展現(xiàn)出來吸引用戶);內(nèi)容網(wǎng)站可能還會涉及到用戶是否讀過,解決用戶想憑借幾個詞找到之前度過的文章這個場景。
所以這部分很難說有什么標準的解法,視業(yè)務(wù)和用戶群體而定。
三、用戶視角
這部分是相對比較偏設(shè)計的,也是整個搜索的最后一部分,我大概整理了一些點可供參考:
1. 搜索框位置
現(xiàn)在的網(wǎng)站和 App 中,搜索框位置通常處于上方,這個位置屬于一個不會阻擋正常內(nèi)容消費,也能夠很方便使用的位置。
我個人出于對用戶習(xí)慣的考慮,比較建議如果沒有特殊情況或者產(chǎn)品結(jié)構(gòu)傾向的話,放在頂部即可,可以不是搜索框的形式,但是一定要有足夠清晰的標識,降低用戶找功能的成本。
2. 引導(dǎo)文
引導(dǎo)文就是指搜索框內(nèi),未輸入時的提示;古早時期,比較常見 ”請輸入搜索關(guān)鍵詞“ 這種說法,但其實這個位置還是比較重要的,既可以提前展示重要信息又可以作為推廣的渠道。所以更加建議和運營方商量去決定如何處理。
3. 熱門搜索詞
點擊搜索的時候,在部分 App 和網(wǎng)站,會展示出熱門搜索詞。這些搜索詞和引導(dǎo)文一樣可以起到引導(dǎo)用戶使用的作用,同時也在一定程度上降低了用戶的使用成本。
不過這部分做起來不算簡單(主要是運營規(guī)則和邏輯),同時效果在前期通常不太明顯,建議初期不做。
4. 搜索歷史
這在大部分網(wǎng)站或 App 中都屬于一個補足用戶體驗的功能,但并不是剛需。所以我個人認為和熱搜一起屬于初期無需做的功能。
5. 結(jié)果相對較少或者沒有時的處理
結(jié)果少或者沒有,有時候其實不是數(shù)據(jù)的問題,而是在前面的搜索詞處理上出了問題,比如說沒有糾錯等等。
但是畢竟已經(jīng)展示給用戶了,還是得思考一下如何展示。
展示相關(guān)度比較高的內(nèi)容應(yīng)該更加推薦的做法,因為這樣會相對更加符合用戶的預(yù)期。
當(dāng)然,重點就是相關(guān)度了,相關(guān)度的理解也比較取決于業(yè)務(wù)——文章的分類、商品的品類和可能有的具體 SKU 屬性、求職產(chǎn)品的職業(yè)或城市或行業(yè)等等。
有了對相關(guān)度的解讀,之后就是具體的文案提示和結(jié)果展示了。
四、總結(jié)
其實上面有很多我自己說的,在現(xiàn)實中的項目也沒有做到,但是由于其中的搜集、學(xué)習(xí),因此對這個功能有了更加全面的了解,之后的迭代才會更有把握做好,希望這篇文章對大家有點用吧。
作者:許珂誠,微信公眾號:XKC的123
本文由 @許珂誠 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
- 目前還沒評論,等你發(fā)揮!