3?需求分析
3.1?同步環(huán)境
本系統(tǒng)的同步環(huán)境如圖3:
添加圖片注釋,不超過(guò) 140 字(可選)
功能需求
本設(shè)計(jì)要實(shí)現(xiàn)的功能:
1. 能夠?qū)nternet上的網(wǎng)頁(yè)內(nèi)容、標(biāo)題、鏈接等信息按鏈?zhǔn)绞占?/p>
2. 能夠?qū)崿F(xiàn)一定鏈接深度的網(wǎng)頁(yè)收集,也就是在Internet上實(shí)現(xiàn)一定的URL級(jí)的數(shù)據(jù)收錄。
3. 對(duì)收集到的數(shù)據(jù)存入MSSQL Server 2000等關(guān)系型數(shù)據(jù)庫(kù)中、或者存入文本文件中。
4. 網(wǎng)站信息庫(kù)中的信息會(huì)不斷的變動(dòng),對(duì)收集到的數(shù)據(jù)需要定期的自動(dòng)維護(hù),做到定期的刪除、從新收集。
5. 對(duì)收集到的數(shù)據(jù)進(jìn)行關(guān)鍵詞的檢索。
6. 對(duì)檢索出的數(shù)據(jù)要可定位性,即可以顯示對(duì)數(shù)據(jù)的出處的鏈接。
7. 實(shí)現(xiàn)中英文分詞功能,能夠按中文或者英文單詞檢索數(shù)據(jù)。
8. 實(shí)現(xiàn)無(wú)刷新的顯示搜索結(jié)果,對(duì)搜索用時(shí)的計(jì)算、顯示,關(guān)鍵字高亮顯示等。
9. 邏輯搜索功能比如“中國(guó)”AND“北京”AND NOT(“海淀區(qū)”AND“中關(guān)村”)。
3.3?性能需求
1. 精度:
1.1對(duì)收集到的信息需要一定的完整性,即對(duì)鏈接層次里的每個(gè)鏈接頁(yè)面都能夠收集得到,并寫入收集的存儲(chǔ)區(qū)里。
1.2對(duì)搜索出的內(nèi)容需要包含有關(guān)鍵字信息
2. 時(shí)間特性要求:
2.1數(shù)據(jù)收集時(shí),因?yàn)槭菍?duì)Internet網(wǎng)上Web信息的收集,并且采用URL級(jí)鏈?zhǔn)降木W(wǎng)頁(yè)收集。收集數(shù)據(jù)時(shí)不能夠出現(xiàn)無(wú)響應(yīng)的等待。
2.2搜索時(shí)響應(yīng)時(shí)間應(yīng)不超過(guò)3秒,無(wú)論搜索的記錄多少。
3. 靈活性
3.1具有良好的中文切詞功能。
3.4?輸入輸出要求
輸入:搜索的關(guān)鍵字。
處理:去前后空格,關(guān)鍵字,查詢索引庫(kù)。
輸出:Web頁(yè)面上顯示搜索信息。
3.5?運(yùn)行需求
1.硬件環(huán)境需求:
需要使用專用服務(wù)器,P4以上,512M以上內(nèi)存,80G以上硬盤;Internet網(wǎng)絡(luò)連接。
2.軟件環(huán)境:
源端:Windows 2003/XP操作系統(tǒng)、MSSQL Server 2000數(shù)據(jù)庫(kù)、IIS5.0、.NET Framework1.1。
4?方案設(shè)計(jì)
結(jié)合前面的同步原理,以及需求的介紹,下面給出同步的方案設(shè)計(jì)。
4.1?搜索引擎模型
模型包括爬蟲、索引生成、查詢以及系統(tǒng)配置部分。爬蟲包括:網(wǎng)頁(yè)抓取模塊、網(wǎng)頁(yè)減肥模塊、爬蟲維持模塊。索引生成包括:基于文本文件的索引、基于數(shù)據(jù)庫(kù)的索引。查詢部分有Ajax、后臺(tái)處理、前臺(tái)界面模塊。如圖4所示。
添加圖片注釋,不超過(guò) 140 字(可選)
數(shù)據(jù)庫(kù)的設(shè)計(jì)
本課題包含一張用于存放抓取回來(lái)的網(wǎng)頁(yè)信息如表1。
添加圖片注釋,不超過(guò) 140 字(可選)
4.3?模塊設(shè)計(jì)
該模型按照功能劃分為三個(gè)部分,一是爬蟲抓取網(wǎng)頁(yè)部分,二是從數(shù)據(jù)庫(kù)建立索引部分,三是從前臺(tái)頁(yè)面查詢部分。系統(tǒng)的功能流程(如圖5.1和5.2)。
添加圖片注釋,不超過(guò) 140 字(可選)
添加圖片注釋,不超過(guò) 140 字(可選)
該系統(tǒng)用3個(gè)模塊來(lái)實(shí)現(xiàn)搜索引擎的主要功能。流程如上圖所示。
從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件。這條件可以是限定的謀個(gè)域名空間、或者是限定的網(wǎng)頁(yè)抓取級(jí)數(shù)。當(dāng)在獲取URL時(shí)存在這樣的問(wèn)題就是在實(shí)際應(yīng)用中主要以絕對(duì)地址和相對(duì)地址來(lái)表現(xiàn)。絕對(duì)地址是指一個(gè)準(zhǔn)確的、無(wú)歧義的Internet資源的位置,包含域名(主機(jī)名)、路徑名和文件名;相對(duì)地址是絕對(duì)地址的一部分。然后把抓取到的網(wǎng)頁(yè)信息包括網(wǎng)頁(yè)內(nèi)容、標(biāo)題、鏈接抓取時(shí)間等信息經(jīng)過(guò)‘減肥’后保存到網(wǎng)頁(yè)存儲(chǔ)數(shù)據(jù)庫(kù)表里。然后通過(guò)正則表達(dá)式,去掉多余的HTML標(biāo)簽。因?yàn)樽ト〉木W(wǎng)頁(yè)含有HTML標(biāo)簽、Javascript等,對(duì)搜索多余的信息,如果抓取到的網(wǎng)頁(yè)不經(jīng)過(guò)處理就會(huì)使搜索變得不夠精確。
讓爬蟲程序能繼續(xù)運(yùn)行下去,就得抓取這個(gè)網(wǎng)頁(yè)上的其它URL,所以要用正則將這個(gè)網(wǎng)頁(yè)上的所有URL都取出來(lái)放到一個(gè)隊(duì)列里。用同樣的方法繼續(xù)抓取網(wǎng)頁(yè),這里將運(yùn)用到多線程技術(shù)。
為了對(duì)文檔進(jìn)行索引,Lucene提供了五個(gè)基礎(chǔ)的類,他們分別是Document,F(xiàn)ield,IndexWriter,Analyzer,Directory Document是用來(lái)描述文檔的,這里的文檔可以指一個(gè)HTML頁(yè)面,一封電子郵件,或者是一個(gè)文本文件。一個(gè)Document對(duì)象由多個(gè)Field對(duì)象組成的??梢园岩粋€(gè)Document對(duì)象想象成數(shù)據(jù)庫(kù)中的一個(gè)記錄,而每個(gè)Field對(duì)象就是記錄的一個(gè)字段。在一個(gè)文檔被索引之前,首先需要對(duì)文檔內(nèi)容進(jìn)行分詞處理,這部分工作就是由Analyzer來(lái)做的。Analyzer類是一個(gè)抽象類,它有多個(gè)實(shí)現(xiàn)。針對(duì)不同的語(yǔ)言和應(yīng)用需要選擇適合的Analyzer。Analyzer把分詞后的內(nèi)容交給IndexWriter來(lái)建立索引。
所有的搜索引擎的目標(biāo)都是為了用戶查詢。通過(guò)查詢頁(yè)面,輸入關(guān)鍵字,提交給系統(tǒng),程序就開(kāi)始處理,最后把結(jié)果以列表的形式顯示出來(lái)。在用Lucene的搜索引擎中,用到了Lucene提供的方法,可從所建立的索引文檔中獲得結(jié)果。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-769392.html
鏈接:https://pan.baidu.com/s/1Xwd0U_KktL0hRFPaggIOGQ?pwd=6688?
提取碼:6688?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-769392.html
到了這里,關(guān)于ASP.NET基于Ajax+Lucene構(gòu)建搜索引擎的設(shè)計(jì)和實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!