如何從0到1搭建站內搜尋?

2021-10-23 10:21:01 字數 2162 閱讀 4018

站在使用者的角度,這樣做當然是更有意義的,能夠用較低的成本增加找到自己想要內容的機率。但是與此同時,乙個單獨的內容站為什麼還需要自己做搜尋呢?

部分**不開放資料

有些**由於業務上、戰略上等等原因,不會開放資料給搜尋引擎使用,那麼為了降低使用者找到內容的成本,提供站內搜尋就是必然的選擇。

不過做站內搜尋也有一些需要說明的問題:

1. 開發成本相對較高

2. 投入產出比相對較低

前面說到了開發成本較高,那麼在開發完成之後,這個功能的使用率會是多少呢?搜尋是乙個主動行為,在沒有額外機制和獎勵的情況下,使用者是被動的。同樣的,除非是知網、**、知乎這種平台,在絕大部分平台上,這項功能的使用頻次必定不會太高。

這也屬於那種重要但不緊急的任務,站內搜尋對於乙個**的必要性就有點像是,手機上發簡訊的功能,使用者可以不用,但是你不能沒有。

3. 內容量問題

在講具體內容之前,需要給大家先介紹一下搜尋引擎搜尋方式—— site。

這應該也算是大家都會經常用到的搜尋技巧了,這種搜尋方式其實完全可以理解成各大搜尋引擎給**提供的免費站內搜尋。

那就有個問題出現了,為什麼不去使用搜尋引擎的 site 方式作為**的站內搜尋呢?這樣的**其實是有一些的,比如說 v2ex。

用搜尋引擎的站內搜尋好處有很多,比如說開發成本極低,使用者使用成本低,搜尋精準度相對較高等等

但是壞處其實也有一些:

搜尋詞處理

後者難度稍微高一點,因為現在的糾錯不在於說沒有方法去做,而是在於說假如不契合業務,可能會導致一些奇怪的結果。

尤其是錯誤糾正方面(糾錯的流程大體為 錯誤字(詞)識別 → 錯誤字(詞)糾正)。不過錯字(詞)有時候確實會影響到分詞效果,進一步影響到搜尋的結果,所以這個還是有必要去做的,不過可以考慮使用者量再大一些,資料更加豐富的時候去做會更好。

以及後面可以涉及到更加深入的使用者搜尋詞**,這個就更加複雜了,筆者也不了解,就不多說了。

匹配

網際網路上的能看到的內容都可以叫做資料,而絕大部分資料都會存在於資料庫的一張一張表之中。匹配的根本就是將搜尋詞拿來去這些表裡查詢,找到合適的資料。

當然,讓使用者去選要搜什麼分類已經是古早網際網路時期的做法了,現在更加常見的做法是展示出所有的內容,但是分塊展現,比如說知乎,綜合下就帶有話題、專欄、問題三種形式。

上面說的是匹配的範圍,匹配還有另外乙個重點就是匹配的覆蓋面:

如果上面很多都想做匹配的話,那就叫多字段匹配或者多欄位搜尋,最簡單的方式就是把多個字段組合起來建索引。

另外,如果說你還希望搜尋匹配這篇文章的內容,而文章的內容通過都是很長的富文字或者文字形式,那麼可能你還需要使用全文匹配來幫助你。

以上兩種其實只是目前比較常見的搜尋匹配方式,技術領域中有很多方法來解決這些問題,但是還是建議產品有時間可以多了解一下,可以更加理解技術的侷限、邊界和成本。

排序

排序一般會根據相關度、內容使用者相關資料、時間等等情況排序,比較依賴於業務屬性。比如說新聞**,時間維度的權重可能就會比較重;電商**可能就比較看重銷量、知名度、利潤、優惠(比如說特定打折時期,將品類中讓利較多的商品展現出來吸引使用者);內容**可能還會涉及到使用者是否讀過,解決使用者想憑藉幾個詞找到之前度過的文章這個場景。

所以這部分很難說有什麼標準的解法,視業務和使用者群體而定。

搜尋框位置我個人出於對使用者習慣的考慮,比較建議如果沒有特殊情況或者產品結構傾向的話,放在頂部即可,可以不是搜尋框的形式,但是一定要有足夠清晰的標識,降低使用者找功能的成本。

引導文不過這部分做起來不算簡單(主要是運營規則和邏輯),同時效果在前期通常不太明顯,建議初期不做。

搜尋歷史結果相對較少或者沒有時的處理

結果少或者沒有,有時候其實不是資料的問題,而是在前面的搜尋詞處理上出了問題,比如說沒有糾錯等等。

但是畢竟已經展示給使用者了,還是得思考一下如何展示。

有了對相關度的解讀,之後就是具體的文案提示和結果展示了。

如何從0到1搭建業務架構?

我們常常聽到的 ios架構工程師 高階產品架構師 但是不是很少聽到有關於業務架構的搭建?目錄 一 產品不等於業務,搭建乙個新的業務架構不等於創造一款新的產品 二 一項新業務的誕生,一定是伴隨著相應商業模式的成立才會長久 三 從流程和人員的角度規範化,無論是新市場 新業務還是新的領域 四 b端同步搭建...

如何從0到1實踐Cloud Native

3月25日,網易雲技術布道系列第三期 對話架構師活動在網易杭州園區舉辦,網易雲基礎服務總經理陳諤 美麗聯合集團研發部副總裁曾憲傑和51信用卡cto郭威分別從雲原生應用技術 技術人員的成長和技術對業務的價值等方面帶來了乾貨分享。本文將為大家重點解讀網易雲基礎服務總經理陳諤帶來的分享 cloud nat...

從0到1搭建React Native開發環境

rn開發之前要配置一系列的開發環境,這裡剛配置好,這裡做乙個總結記錄,希望對大家有幫助。1.nvm是什麼呢?全稱node version manage。看到全稱應該知道了吧,其實nvm就是用來管理nodejs的乙個管理器,他可以安裝多個版本的nodejs和npm版本。nodejs是什麼?nodejs...