目錄
3 搜索引擎的基本原理
3.1搜索引擎的基本組成及其功能
??l.搜索器 (Crawler)
?????2.索引器(Indexer)
?3.檢索器(Searcher)
4.用戶接口(UserInterface)
3.2搜索引擎的詳細工作流程??
4 系統分析與設計
4.1系統分析
4.2系統概要設計
4.2系統實現目標
前面內容請移步
搜索引擎的設計與實現(一)
免費源代碼&畢業設計論文
搜索引擎的設計與實現
3 搜索引擎的基本原理
3.1搜索引擎的基本組成及其功能
圖3-1 搜索引擎的基本組成
????由上圖可知,搜索引擎程序可以化分為搜索器子程序、索引器子程序、檢索器子程序以及用戶接口子程序等模塊;存儲器以及存儲桶是用來存儲所檢索到的各種資源的。
??搜索引擎程序的組成結構具體如下:
??l.搜索器 (Crawler)
????????搜索器,顧名思義,就是用于在互聯網中探索、尋找信息,最終的目的是為了把信息存儲在存儲單元中的。這種計算機程序,需要日夜不停地處于運行的狀態,為的是可以盡可能的更快地搜集更多的新信息,這些信息的種類是多種多樣的,包括有HTML格式、XML格式、字處理文檔格式以及多媒體信息等等,此外搜索引擎還需要定期更新存儲器里的信息。
?搜索器 | 即蜘蛛((Spider)程序,它無時無刻不在運行,主要任務是從因特網上搜集各種的信息資源,然后通過壓縮處理等手段,使其占用空間變小,最終存到存儲庫里,為日候的用戶檢索做準備。 |
索引器 | 把存儲庫里的信息提取出來,進行識別與分析,根據結果進行分類,然后再建立索引,并進行簡單的排隊,把結果放在恰當的硬件存儲單元里,也就是上文提到的存儲桶。 |
檢索器 | 當用戶進行查詢的時候,檢索器會通過判斷用戶輸入的請求,在存儲桶中進行查找,將查到的結果,根據匹配度、優先度等指標進行最終的排序,呈現給用戶最好的結果。 |
用戶接口 | 是用戶與搜索引擎進行人機交互的界面,既可以用于輸入用戶的請求,也可以用來返回查找的結果,供用戶選擇。 |
????????如今,互聯網已經進入了尋常百姓的家中,人們可以自由的發布信息,導致信息更新的很快,只有定時的更新網絡上的信息,才能避免使用者搜索信息時的死連接或者是無效連接。現在我們考慮的搜集信息的策略有兩種:
表3-2?搜集信息的策略
????????為了提高信息的發現以及信息的更新速度,?搜索器的實現方法通常會采用分布式、并行計算技術,這樣就可以滿足商業搜索引擎每天幾百萬網頁的的信息發現了。
?????2.索引器(Indexer)
?????索引器,通過閱讀所搜集的信息,并進行整理,將信息中的索引項生成索引表,同時還可以用索引項表示文檔。索引項有客觀索引項以及內容索引項之分:
?表3-3 索引項的分類
????????為了對文檔的內容進行區分,通常會給單索引項賦權值,這樣就可以用單索引項進行區分了,而且還可以用來得出查詢結果與查詢目標的相關度。一般使用的方法有:統計學方法、概率學方法以及信息論法。短語索引項的提取,一般會采用統計學的方法或者是概率學的方法甚至是語言學的方法。
????????索引表,一般會采用由索引項去查找相對應文檔的內容,這就是所謂的倒排表 (InversionList)。當然,索引表還會把索引項在文檔中出現的位置也記錄在表,目的是為了計算索引項之間的關系,究竟是相鄰還是接近。
????????索引器的算法有兩種:集中式、分布式,每一種算法都有優點,但也都有其缺點。當搜索的數據量巨大的時候,為了解決跟上信息量上升迅速的難題,必須采取即時索引 (InstantIndexing)的方式,一個漂亮的索引算法,隨著索引器的搜索的數據的提升,其性能的優越性就會展露無遺。索引的質量的高低,有時就會完全決定搜索引擎的有效性。
?3.檢索器(Searcher)
????????依照用戶的查詢請求,搜索索引庫并快速的檢索出所需的文檔,然后比較所查到的文檔和查詢請求之間的相關度評價。最終,根據相關度的高低,將輸出的查詢結果進行由高到低的排序,還可以實現用戶相關性與搜索引擎之間的反饋機制。
????????檢索器的設計,目前已有四種成熟的模型:
????????????????混合的模型、代數的模型、以及概率模型、集合理論模型。
4.用戶接口(UserInterface)
????????搜索引擎,目的是為了讓用戶進行檢索信息,所以必須有用戶接口,這樣才能實現人機交互,從而才能真正的體現搜索引擎的價值。用戶接口就是用來進行,將用戶的查詢請求輸入搜索引擎、顯示用戶的查詢結果、更高級的可以提供用戶相關性反饋機制,從而更好地實現搜索引擎,其所提供的信息的準確性、合理性等等。 有了用戶接口,不僅方便了用戶使用搜索引擎,而且使得用戶可以更加的高效率、多方式地得到及時的信息。
????用戶輸入接口我們可以分為兩類,一種是簡單接口,另外一種就是與之對應的復雜接口。
????????簡單接口,就是最為平常的一種交互界面,使用者只能夠輸入查詢信息,不能進行更加精確地查詢,而且也沒有反饋的功能;
????????復雜接口,不僅可以提供輸入查詢信息的文本框,而且使用者還可以對查詢得信息進行限制,減小搜索空間,例如,使用邏輯運算符、使用相近、相鄰的關系、域名的范圍(如.cn、.com)、出現的位置 (如題目、關鍵字、作者、時間)、搜索文檔的字數等等。中國知網、萬方數據庫等等,都可以提供上述限制,由于不同的公司所用的限制方式不同,會給用戶的使用帶來一些不便,當前就有一些公司與機構,正在著手制定查詢選項的一系列標準。
3.2搜索引擎的詳細工作流程??
????搜索引擎的詳細軟件內部構成和具體工作流程說明如下:
?
圖 3-2?搜索引擎的內部構件
????????搜索引擎的工作原理:當我們在一個表單中輸入要搜索的內容時,搜索引擎就會根據我們輸入的內容在數據庫中進行搜索,首先他會匹配各個網頁中的頭部信息中的關鍵字,如果這個網站中有這個關鍵字的話,就會匹配出來;如果沒有的話,搜索引擎就會自動過濾掉。簡單直白的說,搜索引擎的工作原理就是對已存在的一個大型數據庫內的信息資源進行智能化的篩選過程,并將有效的結果反饋給用戶。
????????在這一個過程中無論是誰家的搜索引擎,無論是百度還是谷歌還是雅虎都會采用自己的算法根據一些指標來進行判斷,然后暗戰關聯度。高低從高到低排序。在這一過程中,需要我們在做網站的時候頭部關鍵字部分還有超鏈接部分
還有在做完網站之后會引入一個文件以便收錄,結合一些SEO技術,一個成功的網站是會在排名前五,而且通過一些合理的頁面布局,利用不同的工具,還有超鏈接的設置要合理,避免垃圾鏈接無用鏈接。通過讓搜索引擎爬你的網站,從而增加網站的流量,為各大站長帶來收益。
????????我們通常會用好多指令查看某一個網站的瀏覽人數,但是對于每一個搜索引擎又各有各的算法,在百度適用的不一定在谷歌適用。典型的我們會通過查看看site://www.xxx.com 類型的網站,來了解某一個網站的瀏覽人數。
?
4 系統分析與設計
4.1系統分析
????????經過對搜索引擎的研究同時與Lucene自身的特性相結合,將本次設計所需要實現的功能闡述如下:
- 支持桌面文件搜索,格式包括txt、doc、xls和ppt;
- 支持分詞查詢
- 支持全文搜索
- 能夠高亮顯示搜索關鍵字
- 顯示查詢所用的時間
- 顯示搜索歷史、過濾關鍵字
????????分詞查詢與全文搜索這兩項功能,我們都可以利用Lucene本身自帶的庫加上相關算法就可以完成設計了,為了使得關鍵字的高亮度這一問題得到解決,顯然,我們需要利用Highlighter的輔助,通過數據庫持久化保存數據。
4.2系統概要設計
????????在我們進行需求分析的時候,制定的用例以及領域模型都可以直接的帶入到設計階段,我們粗略設計的搜索引擎系統的構架如下:
圖4-1?系統總體架構
4.2系統實現目標
????????希望實現一個可用于海量信息快速搜索的個性化引擎,它應該具有快速、便捷和精確等特性,并且能夠一目了然而看到搜索耗時,關鍵字高亮度顯示等等個性化效果。實現時希望不需要高配置的硬件資源以及復雜的環境配置或搭建,幸運的是開源Lucene庫給我們提供了可能。