【正文】
and others that they are turned from their course bygifts. Now we have a right to claim, as you yourself allowed, in thematter of laws, that before you are hard upon us and threaten us,you should argue with us and convince usyou should f irst attempt toteach and persuade us that there are Gods by reasonable evidences, andalso that they are too good to be unrighteous, or to be propitiated,or turned from the ir course by gifts. For when we hear such thingssaid of them by those who are esteemed to be the best of poets, andorators, and prophets, and priests, and by innumerable others, thethoughts of most of us are not set upon abstaining from unrighteousacts, but upon doin g them and atoning for them. When lawgivers professthat they are gentle and not stern, we think that they should f irst ofall use persuasion to us, and show us the existence of Gods, if not ina better manne r than other men, at any rate in a truer。 the fourth kind of violence iswhen any one, regardless of the author ity of the rulers, takes orcarries away or makes use of anything which belongs to them, nothaving their consent。s without the consent of theowner。 the admiration of fools。s self hath any perfection. For saith Pliny very wittily。s memory。 there are sometimes great effects of cross lies。s night through the air to Amack. They sit backwards on their painting b all lapse of time, and had bee a cipher and a nothing. Then three alone, or moveth upon greater means, if they have never so little hand in it, they think it is they that carry it They that are glorious, must needs be factious。s diversion, namely, the wild hunt to Amack. Ah, you don39。 特此聲明! 作者簽名: 2020 年 06 月 10 日 第 20 頁 共 19 頁 54 Of Vainglory It was prettily devised of Aesop。 ( 3)學(xué)??梢詫W(xué)術(shù)交流為目的復(fù)制、贈(zèng)送和交換學(xué)位論文。文中除了特別加以標(biāo)注地方外,不包含他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機(jī)構(gòu)的學(xué)位或證書而使用過的材料。 [6] Krzysztof Cwalina, Brad Abrams[美 ]..NET 設(shè)計(jì)規(guī)范 [M].葛子昂 [譯 ].北京 :人民郵電出版社 ,2020。 [2] Christian Thilmany[美 ]. .NET模 式:架構(gòu)、設(shè)計(jì)與實(shí)現(xiàn) [M].張曉坤 ,湯濤 ,譚立平 [譯 ].北京 :人民郵電出版社 ,2020。 2. 當(dāng)前的搜索引擎對(duì)信息的搜索范圍已經(jīng)擴(kuò)大,比如跨行業(yè)檢索。 但從總的情況看來,使用 Ajax 和Lucene 構(gòu)建搜索引擎還有不完善的地方,系統(tǒng)還存在很多有待解決的問題,主要的表現(xiàn)有以下幾個(gè)方面: 1. 全世界對(duì)搜索引擎的研究一直不斷的深入,搜索引擎原理的每一步,從數(shù)據(jù)庫到前臺(tái)頁面,都是可能要經(jīng)過十幾億數(shù)據(jù)的考驗(yàn),應(yīng)有很復(fù)雜的算法來處理。在 Lucene工具包的協(xié)助下,完成了對(duì) 數(shù)據(jù)庫里的記錄建立索引 ,查詢等功能。 在論文中具體做了以下的實(shí)驗(yàn)研究工作: 1. 對(duì)搜索引擎的原理進(jìn)行研究和探討。運(yùn)行界面及過程如 圖 7: 圖 7 spider 第二步:運(yùn)行 index 模塊,把數(shù)據(jù)庫中的記錄建立索引,運(yùn)行界面及過程如下: 如果存放索引的文件已經(jīng)存在,則會(huì)清除 當(dāng)數(shù)據(jù)庫里沒有記錄時(shí),如圖 8: 圖 8 index1 有記錄時(shí)創(chuàng)建索引文件如圖 9: 第 15 頁 共 19 頁 圖 9 index2 第三步:運(yùn)行 search web 模塊 ,從表單中進(jìn)行關(guān)鍵字搜索,此搜索結(jié)果數(shù)據(jù)來源于前 2 步的操作,如圖 10。 (td+content+br+(CreateDate)+/td)。 (tr class=+c+)。 i++) { 在顯示內(nèi)容中,仍然使用到了 Lucene 提供的類, 可以方便的從所建立的索引文檔中 獲取 網(wǎng)址,網(wǎng)頁標(biāo)題,內(nèi)容,時(shí)間。 [] public string SearchResult(string keywords,string pageNo) { 其中,前臺(tái)所存在的文字的代碼如下: StringBuilder sb = new StringBuilder()。為了方便的在程序中使用 Ajax,此系統(tǒng)引用了封裝完善的 Ajax類庫。 ((ID,row[ID].ToString()))。 ((title, row[title].ToString()))。 ()。// DateTime end = 。 //刪除以前生成的索引文件。 public Indexer(string indexDir) { region Lucene Code 首先通過標(biāo)準(zhǔn)分詞定義了一個(gè)索引寫入器 IndexWriter writer = new IndexWriter(indexDir, new StandardAnalyzer(), true)。 Thread th = new Thread(new ThreadStart(UrlThread))。 //對(duì)前面獲取的 URL列表循環(huán)的創(chuàng)建線程再執(zhí)行本方法實(shí)現(xiàn)爬蟲的維持 for(int i=0。 } else 第 12 頁 共 19 頁 { (對(duì) url:+URL+相關(guān)信息寫入數(shù)據(jù)庫失敗 !)。,39。,39。 if((title != || title != ) amp。 //去掉腳本 的網(wǎng)頁文本 Content=parseHtml(PageString)。//從流中讀取網(wǎng)頁信息到字符串變量中 ()。 } catch { (url無法找到! )。 StringBuilder urlList = new StringBuilder()。 String Content=。然后根據(jù)全局變量 url 抓取此 URL的網(wǎng)頁信息到字節(jié)流變量里,經(jīng)過轉(zhuǎn)碼后讀取到變量 PageString 里,下步通過函數(shù) GetHttpUrl(PageString)對(duì)PageString 中的 URL 標(biāo) 記 進(jìn) 行 提取 并返 回 到 urlList 變 量里 ,函 數(shù)GetTitle(PageString) 、 parseScript(PageString) 、 parseHtml(PageString) 、網(wǎng)頁爬蟲 Console 端應(yīng)用程序 數(shù) 據(jù) 庫 索引生成 Console 端應(yīng)用 查詢 Web 程序 第 11 頁 共 19 頁 parseChar(Content)分別對(duì)網(wǎng)頁信息變量獲取標(biāo)題、去除腳本塊、去除 HTML 標(biāo)記、去除特殊字符操作。并可以定位到信息的出處。數(shù)據(jù)庫選擇:根據(jù)需求分析選擇了 MSSQL Server 2020。通過查詢頁面,輸入關(guān)鍵字,提交給系統(tǒng),程序就開始處理,最后把結(jié)果以列表的形式顯示 出來。Analyzer 類是一個(gè)抽象類,它有多個(gè)實(shí)現(xiàn)。 為 了對(duì) 文檔進(jìn)行索引, Lucene 提供了五個(gè)基礎(chǔ)的類,他們分別是 Document,F(xiàn)ield, IndexWriter, Analyzer, Directory Document 是用來描述文檔的,這里的文檔可以指一個(gè) HTML 頁面,一封電子郵件,或者是一個(gè)文本文件。然后通過正則表達(dá)式,去掉多余的 HTML 標(biāo)簽。這條件可以是限定的謀個(gè)域名空間、或者是限定的網(wǎng)頁抓取級(jí)數(shù)。系統(tǒng)的功能流程 (如 圖 和 )。查詢部分有 Ajax、后臺(tái)處理、前臺(tái)界面模塊。 4 方案 設(shè)計(jì) 結(jié)合前面的同步原理,以及需求的介紹,下面給出同步的方案設(shè)計(jì)。 處理:去前后空格,關(guān)鍵字,查詢索引庫。收集數(shù)據(jù)時(shí)不能夠出現(xiàn)無響應(yīng)的等待。 8. 實(shí)現(xiàn)無刷新的顯示搜索結(jié)果,對(duì)搜索用時(shí)的計(jì)算、顯示,關(guān)鍵字高亮顯示等。 4. 網(wǎng)站信 息庫中的信息會(huì)不斷的變動(dòng) ,對(duì)收集到的數(shù)據(jù)需要定期的自動(dòng)維護(hù),做到定期的刪除、從新收集。 3 需求分析 同步環(huán)境 本系統(tǒng)的同步環(huán)境如圖 3: 用戶操作后等待 …… .. 服務(wù)器端處理 客戶端頁面 處理 新的頁面呈現(xiàn) 數(shù)據(jù)提交 數(shù)據(jù)返回 第 6 頁 共 19 頁 因 特 網(wǎng)檢 索 服 務(wù) 器 圖 3 同步環(huán)境 檢索服務(wù)器通過 Inter 檢索 Web 頁面。 2. 使用異步方式與服務(wù)器通信,不需要打斷用戶的操作,具有更加迅速的響應(yīng)能力。從 Ajax 的角度看來 , Web 應(yīng)用應(yīng)由少量的頁面組成,其中每個(gè)頁面其實(shí)是一個(gè)更小型的 Ajax 應(yīng)用。頁面內(nèi)的 JavaScript可以在不刷新頁面的情況下從服務(wù)器獲取數(shù)據(jù),或者向服務(wù)器提 交數(shù)據(jù)。 Ajax 技術(shù)之中,核心的技術(shù)就是 XMLHttpRequest,它最初的名稱叫做XMLHTTP,是微軟公司為了滿足開發(fā)者的需要, 1999 年在 瀏覽器中率先推出的。搜索引擎首先會(huì)對(duì)搜索的關(guān)鍵詞進(jìn)行解析,然后再在建立好的索引上面進(jìn)行查找,最終返回和用戶輸入的關(guān)鍵詞相關(guān)聯(lián)的文檔。反向索引就是說我們維護(hù)了一個(gè)詞 /短語表,對(duì)于這個(gè)表中的每個(gè)詞 /短語,都有一個(gè)鏈表描述了有哪些文檔包含了這個(gè)詞 /短語。 如 圖 1 表示了搜索應(yīng)用程序和 Lucene 之間的關(guān)系,也反映了利用 Lucene構(gòu)建搜 索應(yīng)用程序的流程: 圖 1 應(yīng)用程序和 Lucene 第 4 頁 共 19 頁 索引和搜索 索引是現(xiàn)代搜索引擎的核心,建立索引 是把數(shù)據(jù)源處理成非常方便查詢的索引文件的過程。和Java Lucene 兼容 的 可以用在 . 平臺(tái)。 接下來 在索引數(shù)據(jù)庫中搜索排序 , 當(dāng)用戶輸入關(guān)鍵詞搜索后,由搜索系統(tǒng)程序從網(wǎng)頁索引數(shù)據(jù)庫中找到符合該關(guān)鍵詞的所有相關(guān)網(wǎng)頁。我們平時(shí)看到的全 文搜索引擎,第 3 頁 共 19 頁 實(shí)際上只是一個(gè)搜索引擎系統(tǒng)的檢索界面,當(dāng)你輸入關(guān)鍵詞進(jìn)行查詢時(shí),搜索引擎會(huì)從龐大的數(shù)據(jù)庫中找到符合該關(guān)鍵詞的所有相關(guān)網(wǎng)頁的索引,并按一定規(guī)則呈現(xiàn)給我們。 搜索引擎的工作原理 搜索引擎的原理,可以 看作 三步:從互聯(lián)網(wǎng)上抓取網(wǎng)頁 , 建立索引數(shù)據(jù)庫 ,在索引數(shù)據(jù)庫中搜索。 全文搜索 引擎 通過從互聯(lián)網(wǎng)上提取的各個(gè)網(wǎng)站的信息(以網(wǎng)頁文字為主)而建立的數(shù)據(jù)庫中,檢索與用 戶查詢條件匹配的相關(guān)記錄,然后按一定的排列順序?qū)⒔Y(jié)果返回給用戶 。真正意義上的搜索引擎,通常指的是收集了因特網(wǎng)上幾千萬到幾十億個(gè)網(wǎng)頁并對(duì)網(wǎng)頁中的每一個(gè)詞(即關(guān)鍵詞)進(jìn)行索引,建立索引數(shù)據(jù)庫的全文搜索引擎。 本課題的研究方法 在本系統(tǒng)的開發(fā)過程中,首先分 析 了搜索引擎 的相關(guān)功能 , 寫出需求分析;第 2 頁 共 19 頁 其次,綜合運(yùn)用以前所學(xué)的相關(guān)知識(shí)(數(shù)據(jù) 庫, C# 等),選擇所熟悉的開發(fā)工