搜索引擎工作的四個步驟
1.爬行和抓取
搜索引擎派出一個能夠在網上發現新網頁並抓文件的程序,這個程序通常稱之為蜘蛛。搜索引擎從已知的數據庫出發,就像正常用戶的浏覽器一樣訪問這些網頁並抓取文件。搜索引擎會跟蹤網頁中的鏈接,訪問更多的網頁,這個過程就叫爬行。這些新的網址會被存入數據庫等待抓取。所以跟蹤網頁鏈接是搜索引擎蜘蛛發現新網址的最基本的方法,所以反向鏈接成為搜索引擎優化的最基本因素之一。 搜索引擎抓取的頁面文件與用戶浏覽器得到的完全一樣,抓取的文件存入數據庫。
2.索引
蜘蛛抓取的頁面文件分解、分析,並以巨大表格的形式存入數據庫,這個過程既是索引(index).在索引數據庫中,網頁文字內容,關鍵詞出現的位置、字體、顏色、加粗、斜體等相關信息都有相應記錄。
3.搜索詞處理
用戶在搜索引擎界面輸入關鍵詞,單擊“搜索”按鈕後,搜索引擎程序即對搜索詞進行處理,如中文特有的分詞處理,去除停止詞,判斷是否需要啟動整合搜索,判斷是否有拼寫錯誤或錯別字等情況。搜索詞的處理必須十分快速。
4.排序
對搜索詞處理後,搜索引擎程序便開始工作,從索引數據庫中找出所有包含搜索詞的網頁,並且根據排名算法計算出哪些網頁應該排在前面,然後按照一定格式返回到“搜索”頁面。
搜索引擎數據結構
搜索引擎的核心數據結構為倒排文件(也稱倒排索引),倒排索引是指用記錄的非主屬性值(也叫副鍵)來查找記錄而組織的文件叫倒排文件,即次索引。倒排文件中包括了所有副鍵值,並列出了與之有關的所有記錄主鍵值,主要用於復雜查詢。與傳統的SQL查詢不同,在搜索引擎收集完數據的預處理階段,搜索引擎往往需要一種高效的數據結構來對外提供檢索服務。而現行最有效的數據結構就是“倒排文件”。倒排文件簡單一點可以定義為“用文檔的關鍵詞作為索引,文檔作為索引目標的一種結構(類似於普通書籍中,索引是關鍵詞,書的頁面是索引目標)。