1、基本概念
來源于中文wiki百科的解釋:(網(wǎng)絡(luò))搜索引擎指自動從互聯(lián)網(wǎng)搜集信息,經(jīng)過一定整理以后,提供給用戶進行查詢的系統(tǒng)。 來源于英文wiki百科的解釋:Web search engines provide an interface to search for information on the World Wide Web. Information may consist of web pages, images and other types of files.(網(wǎng)絡(luò)搜索引擎為用戶提供接口查找互聯(lián)網(wǎng)上的信息內(nèi)容,這些信息內(nèi)容包括網(wǎng)頁、圖片以及其他類型的文檔)
2、分類
按照工作原理的不同,可以把它們分為兩個基本類別:全文搜索引擎(FullText Search Engine)和分類目錄Directory)。
分類目錄則是通過人工的方式收集整理網(wǎng)站資料形成數(shù)據(jù)庫的,比如雅虎中國以及國內(nèi)的搜狐、新浪、網(wǎng)易分類目錄。另外,在網(wǎng)上的一些導(dǎo)航站點,也可以歸屬為原始的分類目錄,比如“網(wǎng)址之家”(http://www.hao123.com/)。
全文搜索引擎通過自動的方式分析網(wǎng)頁的超鏈接,依靠超鏈接和HTML代碼分析獲取網(wǎng)頁信息內(nèi)容,并按事先設(shè)計好的規(guī)則分析整理形成索引,供用戶查詢。
兩者的區(qū)分可用一句話概括:分類目錄是人工方式建立網(wǎng)站的索引,全文搜索是自動方式建立網(wǎng)頁的索引。(有些人經(jīng)常把搜索引擎和數(shù)據(jù)庫檢索相比較,其實是錯誤的)。
3、全文搜索的工作原理
全文搜索引擎一般信息采集、索引、搜索三個部分組成,詳細的可由搜索器、分析器、索引器、檢索器和用戶接口等5個部分組成
(1)信息采集(Web crawling):信息采集的工作由搜索器和分析器共同完成,搜索引擎利用稱為網(wǎng)絡(luò)爬
(crawlers)、網(wǎng)絡(luò)蜘蛛(spider)或者叫做網(wǎng)絡(luò)機器人(robots)的自動搜索機器人程序來查詢網(wǎng)頁上的超鏈接。
進一步解釋一下:"機器人"實際上是一些基于Web的程序,通過請求Web站點上的HTML網(wǎng)頁來對采集該HTML網(wǎng)頁,它遍歷指定范圍內(nèi)的整個Web空間,不斷從一個網(wǎng)頁轉(zhuǎn)到另一個網(wǎng)頁,從一個站點移動到另一個站點,將采集到的網(wǎng)頁添加到網(wǎng)頁數(shù)據(jù)庫中。"機器人"每遇到一個新的網(wǎng)頁,都要搜索它內(nèi)部的所有鏈接,所以從理論上講,如果為"機器人"建立一個適當?shù)某跏季W(wǎng)頁集,從這個初始網(wǎng)頁集出發(fā),遍歷所有的鏈接,"機器人"將能夠采集到整個Web空間的網(wǎng)頁。
網(wǎng)上后很多開源的爬蟲程序,可以到一些開源社區(qū)中查找。
關(guān)鍵點1:核心在于html分析,因此嚴謹?shù)、結(jié)構(gòu)化的、可讀性強、錯誤少的html代碼,更容易被采集機器人所分析和采集。例如,某個頁面存在
這樣的結(jié)尾,在網(wǎng)頁顯示是沒有問題的,但是很有可能會被采集拒絕收錄,在例如類似../../***.htm這樣的超鏈接,也有可能造成蜘蛛無法識別。這也是需要推廣web標準的原因之一,按照web標準制作的網(wǎng)頁更容易被搜索引擎檢索和收錄。
關(guān)鍵點2:搜索機器人有專門的搜索鏈接庫,在搜索相同超鏈接時,會自動比對新舊網(wǎng)頁的內(nèi)容和大小,如果一致,則不采集。因此有人擔心修改后的網(wǎng)頁是否能被收錄,這是多余的。
(2)索引(Indexing):搜索引擎整理信息的過程稱為“建立索引”。搜索引擎不僅要保存搜集起來的信息,還要將它們按照一定的規(guī)則進行編排。索引可以采用通用的大型數(shù)據(jù)庫,如ORACLE、Sybase等,也可以自己定義文件格式進行存放。索引是搜索中較為復(fù)雜的部分,涉及到網(wǎng)頁結(jié)構(gòu)分析、分詞、排序等技術(shù),好的索引能極大的提高檢索速度。
關(guān)鍵點1:雖然現(xiàn)在的搜索引擎都支持增量的索引,但是索引創(chuàng)建依然需要較長的時間,搜索引擎都會定期更新索引,因此即便爬蟲來過,到我們能在頁面上搜索到,會有一定的時間間隔。
關(guān)鍵點2:索引是區(qū)別好壞搜索的重要標志。
(3)檢索(Searching):用戶向搜索引擎發(fā)出查詢,搜索引擎接受查詢并向用戶返回資料。有的系統(tǒng)在返回結(jié)果之前對網(wǎng)頁的相關(guān)度進行了計算和評估,并根據(jù)相關(guān)度進行排序,將相關(guān)度大的放在前面,相關(guān)度小的放在后面;也有的系統(tǒng)在用戶查詢之前已經(jīng)計算了各個網(wǎng)頁的網(wǎng)頁等級(Page Rank 后文會介紹),返回查詢結(jié)果時將網(wǎng)頁等級大的放在前面,網(wǎng)頁等級小的放在后面。
關(guān)鍵點1:不同搜索引擎有不同的排序規(guī)則,因此在不同的搜索引擎中搜索相同關(guān)鍵詞,排序是不同的。
(2)索引(Indexing):搜索引擎整理信息的過程稱為“建立索引”。搜索引擎不僅要保存搜集起來的信息,還要將它們按照一定的規(guī)則進行編排。索引可以采用通用的大型數(shù)據(jù)庫,如ORACLE、Sybase等,也可以自己定義文件格式進行存放。索引是搜索中較為復(fù)雜的部分,涉及到網(wǎng)頁結(jié)構(gòu)分析、分詞、排序等技術(shù),好的索引能極大的提高檢索速度。
關(guān)鍵點1:雖然現(xiàn)在的搜索引擎都支持增量的索引,但是索引創(chuàng)建依然需要較長的時間,搜索引擎都會定期更新索引,因此即便爬蟲來過,到我們能在頁面上搜索到,會有一定的時間間隔。
關(guān)鍵點2:索引是區(qū)別好壞搜索的重要標志。
(3)檢索(Searching):用戶向搜索引擎發(fā)出查詢,搜索引擎接受查詢并向用戶返回資料。有的系統(tǒng)在返回結(jié)果之前對網(wǎng)頁的相關(guān)度進行了計算和評估,并根據(jù)相關(guān)度進行排序,將相關(guān)度大的放在前面,相關(guān)度小的放在后面;也有的系統(tǒng)在用戶查詢之前已經(jīng)計算了各個網(wǎng)頁的網(wǎng)頁等級(Page Rank 后文會介紹),返回查詢結(jié)果時將網(wǎng)頁等級大的放在前面,網(wǎng)頁等級小的放在后面。
關(guān)鍵點1:不同搜索引擎有不同的排序規(guī)則,因此在不同的搜索引擎中搜索相同關(guān)鍵詞,排序是不同的。