web搜索之簡單介紹

    今天晚上,大學同學叫我幫他看一下代碼,於是他把公司的搜索引擎的代碼發給我,有十幾M大小,我解壓後導入IDE,快速瀏覽了一下,原來也不過如此,由於代碼版本過於太早,而且有些類還丟失,故無法運行起來,以便查看一下它的效率和性能方面。

       我很早就想說關於WEB搜索的知識了,一直沒有靜下來寫,其實說簡單一點,搜索引擎的步驟有,抓取網頁,分析網頁,建立索引,查詢結果排序等這些。這幾個步驟是不斷循環進行的,最開始,搜索引擎需要有最原始的網頁地址,根據這些網頁地址得到網頁的內空,對這些網頁進行分析,得到網頁內的標題內容,以及相應的鏈接網頁地址,把這些網頁地址保存,給下一次抓取內容所用。然後對網頁的內容進行分詞,根據關鍵字或詞建立倒排序索引,完了後保存索引。這樣對於網頁部分的工作已經完成。

       接下來就是用戶要查詢關於某個關鍵字或詞的網頁內容,首先根據用戶輸入的字或詞,在之前建立好的倒排索引中查找相應的字或詞的有關的網頁內容,得到這些內容後,再根據這些網頁的權重,以及歷史的一些信息,分析出網頁顯示的前後關係,即重要性。GOOGLE專門開發了PAGERANK算法來對結果進行排序。當然用戶可能輸入不是一個字或詞,而是一串,這樣就需要對用戶輸入的信息進行預處理,分解成多個查找條件,再合成這些條件查找的結果。

       對於搜索引擎來說,由於需要不斷的去抓取網頁,同時網頁的更新速度很快,特別是大網站,因此需要隔幾天去搜一次。同時網頁的數量是非常大,可以說很廣。爲了能夠抓取的更多網頁,我們需要大量的機器協同來進行抓取網頁,這樣就涉及到分佈式,可以把網頁分給幾臺機器進行抓取,分析,索引工作。最後用戶提交查詢後,對這多臺機器進行查詢,再合併結果就是了。當然還有其他的辦法。最終的目的就是效率和性能是關鍵。一個搜索引擎的好壞,主要看結果是不是最新的,最前面的結果是不是用戶最想要的東西,查詢結果時響應的速度,等等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章