百度谷歌等搜索引擎用的是什么算法來搜索?
說說基本的吧,百度谷歌的壓箱寶肯定是不公開的,但基本算法是公開發表的,那就是全文檢索算法、爬蟲算法及PageRank算法。有興趣的可以去了解一下這些算法的技術細節及優缺點,這里就不贅述了。
膚淺一點描述,全文檢索算法就是自動對網頁內容及宏數據進行分詞及建立索引(包括反向索引)權重等,那么用戶在搜索某關鍵詞或者關鍵詞組合的時候,搜索引擎就可以根據索引數據將相關網頁以權重由高到低推給用戶。
爬蟲算法呢,就是給它一個口子,它就訪問你全家。比如一個網頁的主頁被搜索引擎建索引了,建完一看還有子網頁(二級頁面),子網頁還有子網頁(三級頁面),于是很高興的順著鏈接挨個兒的去建索引。可以用BFS廣度優先或者DFS深度優先算法,但深度優先遇到調皮的給你個循環鏈接就出不來了。當然網站也有自我保護機制,于是就通過Robot協議來跟搜索引擎講哪些網頁讓你爬,其余的別爬,一般搜索引擎都是遵守robot協議的。
看起來很簡單對不對,但是如果這樣就可以做好搜索引擎,那滿地都是搜索引擎了。所以李彥宏也好,谷歌的佩奇和布林也好,后來都用了PageRank算法,前者創立的百度,后者創立了谷歌。PageRank又是怎樣的呢?還是簡單的說,就是如果一個網頁被很多其他網頁鏈接到的話說明這個網頁比較重要,也就是PageRank值會相對較高。另外如果一個PageRank值很高的網頁鏈接到一個其他的網頁,那么被鏈接到的網頁的PageRank值會相應地因此而提高??纯?,從孤立的內容索引搜索,一下子就立體了。而且網頁的權重會不斷的調整,即使這個網頁的內容是靜態的,這樣搜索引擎的結果就更趨向合理了。
搜索引擎還得賺錢啊,所以光這么全自動的跑著可不行,于是人為的干預出來了。比如網站運營者可以付錢來提高自己網頁在某些關鍵詞上的權重,優先展示給用戶,或者搜索引擎會優先推自家的相關結果(先推全家桶)。作為網站運營者,還可以做SEO即搜索引擎優化,通過某些手段來提高自己網頁的權重和排名,利用的也是搜索引擎的工作機制。
后來用戶不滿足于搜索結果只是一段原文及鏈接了,給我答案!于是又開始運用知識圖譜和語義搜索等技術。這些技術的運用,意味著搜索引擎已經不再局限于網頁層面的索引、分發及引流,而是在海量互聯網信息的基礎上直接滿足用戶的需求了。這點很可怕,如果做到了完美,那么今后用戶都不必訪問其它網站了,直接在搜索引擎的主頁就能找到答案,而網站們成為了搜索引擎的嫁衣或者炮灰。。。