搜尋引擎原理

搜尋引擎原理

搜尋引擎,通常指的是收集了全球資訊網上幾千萬到幾十億個網頁並對網頁中的每一個詞(即關鍵字)進行索引,建立索引資料庫全文搜尋引擎。當用戶查找某個關鍵字的時候,所有在頁面內容中包含了該關鍵字的網頁都將作為搜尋結果被搜出來。再經過複雜的算法進行排序(或者包含商業化的競價排名、商業推廣或者廣告)後,這些結果將按照與搜尋關鍵字的相關度高低(或與相關度毫無關係),依次排列。

基本介紹

  • 中文名:搜尋引擎原理
  • 搜尋引擎定義:關鍵字搜尋結果排序呈現的套用
  • 排序根據:與搜尋關鍵字的相關度
  • 工作原理:爬行和抓取、建立索引等
  • 核心數據結構倒排檔案
  • 分類:全文搜尋引擎、目錄索引等
原理概述,工作原理,爬行和抓取,建立索引,搜尋詞處理,排序,數據結構,全文搜尋引擎,目錄索引,元搜尋引擎,

原理概述

在搜尋引擎的後台,有一些用於蒐集網頁信息的程式。所收集的信息一般是能表明網站內容(包括網頁本身、網頁的URL地址、構成網頁的代碼以及進出網頁的連線)的關鍵字或者短語。接著將這些信息的索引存放到資料庫中。
搜尋引擎的系統架構和運行方式吸收了信息檢索系統設計中許多有價值的經驗,也針對全球資訊網數據和用戶的特點進行了許多修改,如右圖所示的搜尋引擎系統架構。其核心的文檔處理和查詢處理過程與傳統信息檢索系統的運行原理基本類似,但其所處理的數據對象即全球資訊網數據的繁雜特性決定了搜尋引擎系統必須進行系統結構的調整,以適應處理數據和用戶查詢的需要。

工作原理

爬行和抓取

搜尋引擎派出一個能夠在網上發現新網頁並抓檔案的程式,這個程式通常稱之為蜘蛛(Spider)。搜尋引擎從已知的資料庫出發,就像正常用戶的瀏覽器一樣訪問這些網頁並抓取檔案。搜尋引擎通過這些爬蟲去爬網際網路上的外鏈,從這個網站爬到另一個網站,去跟蹤網頁中的連結,訪問更多的網頁,這個過程就叫爬行。這些新的網址會被存入資料庫等待搜尋。所以跟蹤網頁連結是搜尋引擎蜘蛛(Spider)發現新網址的最基本的方法,所以反向連結成為搜尋引擎最佳化的最基本因素之一。搜尋引擎抓取的頁面檔案與用戶瀏覽器得到的完全一樣,抓取的檔案存入資料庫。

建立索引

蜘蛛抓取的頁面檔案分解、分析,並以巨大表格的形式存入資料庫,這個過程即是索引(index).在索引資料庫中,網頁文字內容,關鍵字出現的位置、字型、顏色、加粗、斜體等相關信息都有相應記錄。

搜尋詞處理

用戶在搜尋引擎界面輸入關鍵字,單擊“搜尋”按鈕後,搜尋引擎程式即對搜尋詞進行處理,如中文特有的分詞處理,去除停止詞,判斷是否需要啟動整合搜尋,判斷是否有拼寫錯誤或錯別字等情況。搜尋詞的處理必須十分快速。

排序

搜尋詞處理後,搜尋引擎程式便開始工作,從索引資料庫中找出所有包含搜尋詞的網頁,並且根據排名算法計算出哪些網頁應該排在前面,然後按照一定格式返回到“搜尋”頁面。
再好的搜尋引擎也無法與人相比,這就是為什麼網站要進行搜尋引擎最佳化。沒有SEO的幫助,搜尋引擎常常並不能正確的返回最相關、最權威、最有用的信息。

數據結構

搜尋引擎的核心數據結構為倒排檔案(也稱倒排索引),倒排索引是指用記錄的非主屬性值(也叫副鍵)來查找記錄而組織的檔案叫倒排檔案,即次索引。倒排檔案中包括了所有副鍵值,並列出了與之有關的所有記錄主鍵值,主要用於複雜查詢。 與傳統的SQL查詢不同,在搜尋引擎收集完數據的預處理階段,搜尋引擎往往需要一種高效的數據結構來對外提供檢索服務。而現行最有效的數據結構就是“倒排檔案”。倒排檔案簡單一點可以定義為“用文檔的關鍵字作為索引,文檔作為索引目標的一種結構(類似於普通書籍中,索引是關鍵字,書的頁面是索引目標)。

全文搜尋引擎

在搜尋引擎分類部分我們提到過全文搜尋引擎從網站提取信息建立網頁資料庫的概念。搜尋引擎的自動信息蒐集功能分兩種。一種是定期搜尋,即每隔一段時間(比如Google一般是28天),搜尋引擎主動派出“蜘蛛”程式,對一定IP位址範圍內的網際網路站進行檢索,一旦發現新的網站,它會自動提取網站的信息和網址加入自己的資料庫。
另一種是提交網站搜尋,即網站擁有者主動向搜尋引擎提交網址,它在一定時間內(2天到數月不等)定向向你的網站派出“蜘蛛”程式,掃描你的網站並將有關信息存入資料庫,以備用戶查詢。由於搜尋引擎索引規則發生了很大變化,主動提交網址並不保證你的網站能進入搜尋引擎資料庫,因此目前最好的辦法是多獲得一些外部連結,讓搜尋引擎有更多機會找到你並自動將你的網站收錄。
當用戶以關鍵字查找信息時,搜尋引擎會在資料庫中進行搜尋,如果找到與用戶要求內容相符的網站,便採用特殊的算法——通常根據網頁中關鍵字的匹配程度,出現的位置/頻次,連結質量等——計算出各網頁的相關度及排名等級,然後根據關聯度高低,按順序將這些網頁連結返回給用戶。

目錄索引

與全文搜尋引擎相比,目錄索引有許多不同之處。
首先,搜尋引擎屬於自動網站檢索,而目錄索引則完全依賴手工操作。用戶提交網站後,目錄編輯人員會親自瀏覽你的網站,然後根據一套自定的評判標準甚至編輯人員的主觀印象,決定是否接納你的網站。如果審核通過,你網頁才會出現於搜尋引擎中,否則不會顯示。
其次,搜尋引擎收錄網站時,只要網站本身沒有違反有關的規則,一般都能收錄成功。而目錄索引對網站的要求則高得多,有時即使登錄多次也不一定成功。
此外,在登錄搜尋引擎時,我們一般不用考慮網站的分類問題,而登錄目錄索引時則必須將網站放在一個最合適的目錄。
最後,搜尋引擎中各網站的有關信息都是從用戶網頁中自動提取的,所以用戶的角度看,我們擁有更多的自主權;而目錄索引則要求必須手工另外填寫網站信息,而且還有各種各樣的限制。更有甚者,如果工作人員認為你提交網站的目錄、網站信息不合適,他可以隨時對其進行調整,當然事先是不會和你商量的。
目錄索引,顧名思義就是將網站分門別類地存放在相應的目錄中,因此用戶在查詢信息時,可選擇關鍵字搜尋,也可按分類目錄逐層查找。如以關鍵字搜尋,返回的結果跟搜尋引擎一樣,也是根據信息關聯程度排列網站,只不過其中人為因素要多一些。如果按分層目錄查找,某一目錄中網站的排名則是由標題字母的先後順序決定(也有例外)。
目前,搜尋引擎與目錄索引有相互融合滲透的趨勢。原來一些純粹的全文搜尋引擎現在也提供目錄搜尋。

元搜尋引擎

元搜尋引擎(MetaSearchEngine)不是一種獨立的搜尋引擎,它最顯著的特點是沒有自己的資源索引資料庫,是架構在許多其他搜尋引擎之上的搜尋引擎。元搜尋引擎在接受用戶查詢請求時,可以同時在其他多個搜尋引擎中進行搜尋,並將其他搜尋引擎的檢索結果經過處理後返回給用戶。元搜尋引擎為用戶提供一個統一的查詢頁面,通過自己的用戶提問預處理子系統將用戶提問轉換成各個成員搜尋引擎能識別的形式,提交給這些成員搜尋引擎中,然後把各個成員搜尋引擎的搜尋結果按照自己的結果處理子系統進行比較分析,去除重複並且按照自定義的排序規則進行排序返回給用戶。所以,一般的元搜尋引擎都包括三大功能結構:提問預處理子系統、檢索接口代理子系統和檢索結果處理子系統

相關詞條

熱門詞條

聯絡我們