搜索引擎中輸入檢索詞到返回十條結果,發生了哪些事情


       移動互聯網時代搜索引擎依然是重要流量來源以及流量分發渠道,雖然比PC互聯網時代權重有所降低。

各大電商淘寶、京東80-90%交易額也是由用戶app內搜索、網站內搜索產生,個性化推薦系統本身也和搜索

引擎無論技術還是產品方方面面都與搜索引擎有着關聯,我們每天也都和搜索引擎打着交道,搜索知識、

搜索問題、搜索新聞、了解世界,搜索引擎價值巨大,作為一個技術人應該了解他並不斷深入了解他。  

 

                        百度第三代搜索引擎架構

       當我們使用搜索引擎檢索信息時,輸入想要查找檢索詞,點擊回車,搜索引擎在1s左右時間返回十篇

文檔。使用他對於有一定互聯網經驗人來說相當方便,但其背后發生了哪些事情,是不是如前台返回這樣

簡潔優雅呢,下面杉楓帶着大家一起一看究竟。

       輸入搜索詞后,這時搜索引擎會進行聯想詞推薦、相關搜索推薦。

 

       搜索聯想詞目的是讓搜索更加准確,推薦補全選項是搜索很多並且基於輸入詞前綴匹配補全,這樣能

更精准滿足用戶檢索需求,極大提升用戶體驗,在通用搜索引擎,以及電商淘寶、京東等電商搜索是標配。

       搜素詞還要進行分詞,分詞是搜索准確前提條件,試想如果你搜索“嚴守一把手機關了”分詞成“嚴守、

嚴守一、一把、一把手、把手、手機、機關、關了”,這樣就很難搜索到想要內容了,分詞要識別人物

名稱。這種情況屬於分詞中的歧義,是分詞中比較難處理問題,需要不斷優化算法以及進行定時人工干

預分詞,來使分詞准確。

       再有就是新詞發現,隨着社會發展以及互聯網快速發展,網民會不斷創建詞來表達新的含義事物,

因為有研究發現新詞帶來的分詞問題是歧義的10倍左右,所以它是分詞面臨的最大挑戰。“老鐵”、“神馬”、

“懟”等等需要分詞系統要能不斷及時對新詞進行識別,准確分詞。

       搜索詞短語識別,對於檢索詞要進行短語判斷,如是短語類型檢索,給出和搜索短語相關詞多,

並且詞之間順序位置要近,形成短語關系為打分權重一個重要依據。

        搜索同義詞替換,有些時候搜索內容在搜索引擎收錄不多,為了滿足用戶搜索需求,可以將搜索詞

進行同義詞近義詞替換,可以見搜索引擎研究雜記在微信搜索“卓越網”實例,因“卓越網”數據在微信中

不多,微信將“卓越”替換成“優秀”進行搜索文章召回,雖然體驗也沒有特別好,但終究給用戶更多選擇。

       怎么找到同義詞也是好問題。方法一可以通過詞典,金山、網易來尋找同義詞別名建立同義詞庫,

再有就是百科中同義,又名等抽取同義詞,還可以通過多個搜索詞指向同一結果,說明它們有一定幾率

是同義詞。以及其他方法,后邊會寫一篇專門做同義詞詞庫提取。

       搜索詞糾錯,輸入“劉的華”要能推薦出“劉德華”,“2084”要能推薦出“2048”,“我的后半生”要能推薦

出“我的前半生”,等等因為搜索引擎面向全部用戶,很多用戶不能熟練使用搜索引擎以及輸入法,搜索

詞糾錯必不可少。

 

       上邊是列舉出搜索詞分詞、搜索聯想、搜索糾錯等一系列過程基本上完成對於搜索詞處理。

        搜索引擎本身是個分布式系統,用戶點擊搜索提交搜索詞后,搜索引擎收到搜索詞后,在多個節點

根據倒排索引進行召回,會根據用戶輸入進行分詞后召回,召回邏輯根據分詞、同義詞、短語多個維度

進行召回,召回還要包含交集關系(比如搜索“推薦系統架構”)那么包含在“推薦系統”、“架構”兩個詞倒

排索引下文檔取交集。

        用戶檢索內容的分詞,少詞下文檔有幾千,多的幾萬、幾十萬、幾百萬,這時取哪些文章進行召回

就很關鍵,因為磁盤IO很慢不可能實現對於幾百萬文章全部召回。這時就需要做兩種選擇,一種是離線

排序根據PageRank、網站權重、作者權重等多個維度離線打分來標識文章質量對文章進行離線排序,

搜索引擎實時召回文章時就只需幾百幾千個進行召回,幾百、幾千文章召回很好實現的,性能也沒有問

題。一種是離線進行一定排序,搜索引擎實時召回實時根據F-IDF、BM25、其他特征進行打分高分存入

帶返回結果集合,設置超時時間到了超時時間停止進行召回,對已存在召回集進行返回。

        短語召回集要召回,包含多個詞並且多個詞在文章中位置近的權重高。

        多於召回數據要根據TF-IDF、BM25、用戶曝光后點擊、跳出率等等多個特征進行打分排序,排序后

進行返回,當下搜索引擎特征因素會有上百甚至幾百,但核心目的是為了找到最滿足用戶需求文章進行返回。

        想做推薦引擎想要做好推薦引擎必須研究搜索引擎,因為他倆有千絲萬縷關系,研究好了一個對於做

另一個有很多啟發。

        這篇是篇原理,后邊會分享下百度第三代搜索引擎架構,第二代搜索引擎架構有hadoop開源存儲引

擎加上c++搜索引擎構成,更新數據需要2-3周實時性差,第三代搜索引擎全部由c++開發打造,抓取更新

數據能到分鍾級,性能提升三個數量級是質的飛躍,敬請期待!

        微信掃碼關注:

      掃碼關注公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM