24h購物| | PChome| 登入
2011-04-02 20:49:33| 人氣198| 回應0 | 上一篇 | 下一篇

基於Ajax構建搜索引擎的設計和實現

推薦 0 收藏 0 轉貼0 訂閱站台


   
摘要:通過搜索引擎從互聯網上獲取有用信息已經成為人們生活的重要組成部分,Lucene是構建搜索引擎的其中一種方式。搜索引擎系統是在.Net平台上用C#開發的,數據庫是MSSQL Server 2000。

主要完成的功能有:用爬蟲抓取網頁;獲取有效信息放入數據庫;通過Lucene建立引;對簡單關鍵字進行搜索;使用Ajax的局部刷新頁面展示結果。

論文詳細說明了系統開發的背景,開發環境,系統的需求分析,以及功能的設計與實現。同時講述了搜索引擎的原理,系統功能,並探討使用Ajax與服務器進行數據異步交互,從而改善現有的Web應用模式。

關鍵詞:Lucene.net;異步更新;Ajax;搜索引擎

  引言

  1.1課題背景

Lucene是一個基於Java的全文信息檢索工具包,它為應用程序提供索引和搜索功能。 Lucene目前是Apache Jakarta家族中的一個開源項目。也是目前最為流行的基於Java開源全文檢索工具包。 Lucene是Java世界中常用的索引API,使用它提供的方法可以為文本資料創建索引,並提供檢索。 Lucene.net它只在命名方面採納了.Net的建議,主要目標傾向於和Java Lucene兼容:一個是索引格式兼容,達到可以共同工作的目的;一個是命名接近(只相差很少,比如大小寫等),目的是可以方便開發者使用Java Lucene相關的代碼和資料。

  1.2國內外研究現狀

國內外對搜索引擎研究比較著名的便是Google了。無論搜索技術本身還是搜索範圍與深度,Google搜索總是所有搜索引擎的目標。 Google專業領域搜索方面做的成效是有目共睹的。 Google在低層次的智能搜索方面已經開始研究很多年了,實際的成果就是翻譯方面。利用搜索技術,加上經驗主義發展出來的Google翻譯機器人,在外語翻譯方面已經比傳統的翻譯好很多了。但是翻譯僅僅是學術方面的應用,更重要的是Google建立起來的海量搜索歷史記錄。如果把這些海量搜索歷史記錄當作是詞典的話,那麼如果與搜索技術的結合發展成為低層次的只能搜索,那麼應用就將大大加強與廣泛。

國內,對搜索引擎的專注和對中文的理解能力也是中國本土搜索引擎行業獨特的競爭力。國內比較著名的比如百度,更專注對中文的處理。中文的意思多種多樣,是很難用程序處理的。目前國內外都在做中文引擎,門戶網站、非門戶網站也都在進軍搜索業,成立搜索門戶。為了滿足用戶更深層次的需求,國內的搜索引擎也在不斷的完善自己。如何將人類的知識和智能加入到檢索中,如何使搜索引擎的質量產生一個質的飛躍,也是國內搜索引擎努力的方向。中國網民對智能化搜索需求也是顯而​​易見的。這也意味著搜索不再是簡單的技術或者是網絡導航而已,而是會成為普通人生活中必備的工具之一。

  1.3本課題研究的意義

隨著計算機技術和互聯網技術的飛速發展,網絡上的信息量急劇增長,要在浩如煙海的網絡世界中尋找需要的信息,作為現代信息獲取技術的主要應用,那麼搜索引擎是必不可少的。通過Lucene.net,可以很方便的構建起搜索引擎,本畢業設計除了考查使學生綜合運用以前所學知識的能力,同時也使學生了解當今搜索及編程的一些新技術,並模擬簡單的搜索引擎開發。

  1.4本課題的研究方法

在本系統的開發過程中,首先分析了搜索引擎的相關功能,寫出需求分析;其次,綜合運用以前所學的相關知識(數據庫,C#等),選擇所熟悉的開發工具進行開發(本系統選擇了Microsoft Visual Studio.NET 2003作為開發平台,開發語言選擇了C#;數據庫採用Microsoft SQL Server 2000)。由於Lucene不是完整的搜索引擎程序,只為搜索引擎應用提供了工具包,在Asp.net平台中,可使用Lucene.net這個對Lucene兼容的庫。使用Lucene.net協助完成搜索引擎相關的網頁爬蟲與抓取,為文檔建立索引,關鍵詞搜索的功能,通過Ajax優化系統,完成頁面的局部刷新功能,給用戶好的體驗。

  2.1全文搜索引擎

  2.1.1搜索引擎的分類

獲得網站網頁資料,能夠建立數據庫並提供查詢的系統,我們都可以把它叫做搜索引擎。真正意義上的搜索引擎,通常指的是收集了因特網上幾千萬到幾十億個網頁並對網頁中的每一個詞(即關鍵詞)進行索引,建立索引數據庫的全文搜索引擎。當用戶查找某個關鍵詞的時候,所有在頁面內容中包含了該關鍵詞的網頁都將作為搜索結果被搜出來。在經過複雜的算法進行排序後,這些結果將按照與搜索關鍵詞的相關度排列。按照工作原理的不同,可以把它們分為兩個基本類別:全文搜索和分類目錄。

全文搜索引擎通過從互聯網上提取的各個網站的信息(以網頁文字為主)而建立的數據庫中,檢索與用戶查詢條件匹配的相關記錄,然後按一定的排列順序將結果返回給用戶。從搜索來源的角度,全文搜索引擎又可細分為兩種,一種是擁有自己的檢索程序(Indexer),俗稱“蜘蛛”(Spider)程序或“機器人”(Robot)程序,並自建網頁數據庫,搜索結果直接從自身的數據庫中調用;另一種則是租用其他引擎的

數據庫,並按自定的格式排列搜索結果。分類目錄則是通過人工的方式收集整理網站資料形成數據庫的,比如雅虎中國以及國內的搜狐、新浪、網易分類目錄。另外,在網上的一些導航站點,也可以歸屬為原始的分類目錄。

  2.1.2搜索引擎的工作原理

搜索引擎的原理,可以看作三步:從互聯網上抓取網頁,建立索引數據庫,在索引數據庫中搜索。

全文搜索引擎的“網絡蜘蛛”能夠掃描一定地址範圍內的網站,並沿著網絡上的鏈接從一個網頁到另一個網頁,從一個網站到另一個網站採集網頁資料。它為保證採集的資料最新,還會回訪已抓取過的網頁。

網絡機器人或網絡蜘蛛採集的網頁,還要有其它程序進行分析,根據一定的相關度算法進行大量的計算建立網頁索引,才能添加到索引數據庫中。我們平時看到的全文搜索引擎,實際上只是一個搜索引擎系統的檢索界面,當你輸入關鍵詞進行查詢時,搜索引擎會從龐大的數據庫中找到符合該關鍵詞的所有相關網頁的索引,並按一定規則呈現給我們。不同的搜索引擎,網頁索引數據庫不同,搜索結果也就不盡相同。

利用能夠從互聯網上自動收集網頁的Spider程序,自動訪問互聯網,並沿著網頁中的所有URL爬到其它網頁,重複這過程,並把爬過的所有網頁收集回來。然後建立索引數據庫,由分析索引程序對收集回來的網頁進行分析,提取相關網頁信息(包括網頁所在URL、編碼類型、頁面內容包含的關鍵詞、關鍵詞位置、生成時間、大小、與其它網頁的鏈接關係等),然後用這些相關信息建立網頁索引數據庫。接下來在索引數據庫中搜索排序,當用戶輸入關鍵詞搜索後,由搜索系統程序從網頁索引數據庫中找到符合該關鍵詞的所有相關網頁。最後,由頁面生成系統將搜索結果的鏈接地址和頁面內容摘要等內容組織起來返回給用戶。搜索引擎只能搜到它網頁索引數據庫裡儲存的內容。

  2.2 Lucene與搜索引擎

Lucene是一個全文信息檢索工具包,為應用程序提供索引和搜索功能。和Java Lucene兼容的Lucene.net可以用在.net平台。 Lucene能夠為文本類型的數據建立索引,所以你只要能把你要索引的數據格式轉化的文本的,Lucene就能對你的文檔進行索引和搜索。比如你要對一些HTML文檔,PDF文檔進行索引的話你就首先需要把HTML文檔和PDF文檔轉化成文本格式的,然後將轉化後的內容交給Lucene進行索引,然後把創建好的索引文件保存到磁盤或者內存中,最後根據用戶輸入的查詢條件在索引文件上進行查詢。不規定要索引的文檔的格式也使Lucene能夠適用於幾乎所有的搜索應用程序。 (編選:麻吉小站)

台長: 西武
人氣(198) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 教育學習(進修、留學、學術研究、教育概況) | 個人分類: 搜索動態 |
此分類下一篇:Diagnosia:打造歐洲最優秀的醫藥搜索引擎
此分類上一篇:動態網站的搜索引擎的研究

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文