freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

互聯(lián)網(wǎng)信息檢索系統(tǒng)的研究與實(shí)現(xiàn)本科畢業(yè)論文(已改無錯字)

2022-07-25 22:31:22 本頁面
  

【正文】 一個值的差值,這樣可以減小數(shù)字的長度,從而減少保存該數(shù)字需要的字節(jié)數(shù)。例如:當(dāng)前文檔序列號是17983,上一文章號是17970,在不壓縮的情況下,要用3個字節(jié)才能保存,壓縮后只需保存13,使用一個字節(jié)就可以了。 數(shù)據(jù)流分析。在此基礎(chǔ)上。這部分的分析,也是進(jìn)行重寫的基礎(chǔ)。,如圖34所示。被索引文件語義分析邏輯索引構(gòu)建邏輯索引文件查詢語句索引查找邏輯評分排序邏輯查詢結(jié)果文件流文件流文件流Token流Token流字節(jié)流字節(jié)流圖33 ?,F(xiàn)在將圖中的涉及到的流的類型及各個邏輯對應(yīng)系統(tǒng)的相關(guān)部分的關(guān)系說明一下。圖中共存在4種數(shù)據(jù)流,分別是文件流,token流,字節(jié)流與查詢語句對象流。文本流表示了對于索引目標(biāo)和交互控制的抽象,即用文本流表示了將要索引的文件,用文本流向用戶輸出信息;在實(shí)際的實(shí)現(xiàn)中,以達(dá)到適應(yīng)多種語言文字的處理的目的。,是對傳統(tǒng)文字中的詞的概念進(jìn)行抽象,;簡單的講Token就是一個詞和所在域值的組合。字節(jié)流則是對文件抽象的直接操作的體現(xiàn),通過固定長度的字節(jié)()流的處理,將文件操作解脫出來,也做到了與平臺文件系統(tǒng)的無關(guān)性。查詢語句對象流則是僅僅在查詢語句解析時用到的概念,它對查詢語句抽象,通過類的繼承結(jié)構(gòu)反映查詢語句的結(jié)構(gòu),將之傳送到查找邏輯來進(jìn)行查找的操作。 通過以上的系統(tǒng)結(jié)構(gòu)分析和數(shù)據(jù)流分析。在此基礎(chǔ)上,緊接著還可以在全文檢索引擎的基礎(chǔ)上構(gòu)建各種應(yīng)用系統(tǒng)。,而是一個全文檢索引擎的架構(gòu),它中包含的大量抽象類、接口、文檔類型、評分邏輯等需要根據(jù)具體應(yīng)用來定義實(shí)現(xiàn)。如圖35所示。用戶自定義功能….用戶自定義功能圖35 自定義擴(kuò)展功能對其開發(fā)的關(guān)鍵工作如下:(1) (按照空格進(jìn)行分詞,并去除了常用的語法詞,如英文中的is,are等等)。因此我們需要按照目標(biāo)語言的詞法結(jié)構(gòu)來構(gòu)建相應(yīng)的詞法分析邏輯。(2) 按照被索引的文件的格式來提供相應(yīng)的文本分析邏輯,這里是指除了開詞法分析之外的部分,比如HTML文件,通常需要把其中的內(nèi)容按照所屬于域分門別類加入索引,這就需要我們自己定義實(shí)現(xiàn)處理HTML文件的HTMLDocument類。(3) 具體搜索邏輯的設(shè)計(jì),,也通過QueryParser提供強(qiáng)大的查詢語言。在實(shí)際應(yīng)用中,設(shè)計(jì)具體的搜索器,包括默認(rèn)域的指定,搜索域的接收,索引庫位置的接收,以及多個查詢通過布爾操作符連接起來形成復(fù)雜的查詢語句的功能。這些都要符合查詢解析器的要求。當(dāng)然,(尤其是對非英文的語言檢索)。比如改進(jìn)其索引的效率,設(shè)置權(quán)重,操作索引庫,改進(jìn)其返回結(jié)果時候的緩沖機(jī)制等等。,之后就可以考慮其上的應(yīng)用程序開發(fā)。如果系統(tǒng)也使用C語言開發(fā),作為一個API集來調(diào)用。這個過程十分簡單,以下便是一個示例程序://將元數(shù)據(jù)生成索引數(shù)據(jù)的方法private IndexWriter CreateNewsIndex(){ string ConString = @server=GAO。uid=sa。pwd=sagao。database=News。 string Index_Path = ProgressStartPath + \\Index + \\。 IndexWriter writer = null。 try { SqlConnection conn = new SqlConnection(ConString)。 if ( == ) { ()。 } SqlCommand cmd=new SqlCommand (select * from News,conn)。 SqlDataReader dr = ()。 writer = new IndexWriter(Index_Path, new StandardAnalyzer(), true)。 while (()) { Document doc = new Document()。 (new Field(tablename, News, , ))。 (new Field(title, dr[Title].ToString(), , ))。 (new Field(indexcontent, dr[Title].ToString() + dr[Content].ToString(), , ))。 (doc)。 } ()。 ()。 ()。 ()。 (Succeed!)。 } catch (Exception ex) { ()。 } return writer。}當(dāng)然。 4 系統(tǒng)設(shè)計(jì) 系統(tǒng)特點(diǎn)通過對搜索引擎的學(xué)習(xí)和分析,針對于搜索引擎的特點(diǎn),設(shè)計(jì)了一個簡易的搜索引擎,實(shí)現(xiàn)對互聯(lián)網(wǎng)數(shù)據(jù)的采集,索引數(shù)據(jù)的生成,數(shù)據(jù)檢索等功能。系統(tǒng)命名為EarthSearch。系統(tǒng)使用C語言進(jìn)行開發(fā), Framework下,主要支持Windows操作系統(tǒng),同時也可以移植到其他平臺。系統(tǒng)在實(shí)現(xiàn)上具有以下特點(diǎn): 使用C正則表達(dá)式解析HTML,獲取HTML中核心數(shù)據(jù)。 使用Microsoft SQL 2005對采集的網(wǎng)頁數(shù)據(jù)進(jìn)行保存。 多線程進(jìn)行數(shù)據(jù)的采集,網(wǎng)頁文件的下載。 。 。 使用Log4net實(shí)現(xiàn)日志功能模塊。 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)系統(tǒng)在功能上采用分層方式,盡量減少層與層之間的耦合度,同時通過對模塊功能進(jìn)行精心劃分,取得了很好的可配置性。從功能上劃分,系統(tǒng)主要由五個核心模塊構(gòu)成。包括:配置管理模塊,數(shù)據(jù)抓取模塊,數(shù)據(jù)索引模塊,數(shù)據(jù)檢索模塊,日志管理模塊。各模塊在實(shí)現(xiàn)上具有高度可隔離性。 配置管理模塊配置管理模塊主要提供了對系統(tǒng)配置文件的操作,對配置文件進(jìn)行添加,修改,刪除等功能。通過對配置文件的管理,可以很方便有效的對系統(tǒng)進(jìn)行管理。使用SOAP格式的XML進(jìn)行相關(guān)配置的保存,C對XML的操作具有很好的支持,可以高效的實(shí)現(xiàn)對XML節(jié)點(diǎn)、屬性等方面的操作。 數(shù)據(jù)抓取模塊數(shù)據(jù)抓取模塊主要提供對Internet網(wǎng)頁數(shù)據(jù)的采集,數(shù)據(jù)的保存,網(wǎng)頁文件的下載。實(shí)現(xiàn)搜索引擎中的Crawler模塊。由于互聯(lián)網(wǎng)上的數(shù)據(jù)多是以HTML文件的形式保存的,所以在對互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行采集時,需要對HTML進(jìn)行解析,獲取網(wǎng)頁中的核心內(nèi)容,去除掉無用的HTML標(biāo)簽,然后將采集的數(shù)據(jù)保存到數(shù)據(jù)庫中。,從而實(shí)現(xiàn)數(shù)據(jù)抓取的高效性。在數(shù)據(jù)庫操作方面,這里使用Microsoft SQL 2005對數(shù)據(jù)進(jìn)行保存,當(dāng)然也可以使用Oracle等數(shù)據(jù)庫。 數(shù)據(jù)索引模塊數(shù)據(jù)索引模塊主要提供對數(shù)據(jù)抓取模塊的數(shù)據(jù)進(jìn)行索引,生成索引文件,為數(shù)據(jù)檢索模塊提供檢索數(shù)據(jù)。實(shí)現(xiàn)搜索引擎中的Indexer模塊。,索引時使用單獨(dú)的線程,可以同數(shù)據(jù)抓取線程互相不干擾。最終生成deletable文件、segment文件和數(shù)據(jù)索引文件。 數(shù)據(jù)檢索模塊數(shù)據(jù)檢索模塊主要為用戶提供數(shù)據(jù)檢索的功能。以Web的形式將符合條件的數(shù)據(jù)反饋給用戶。實(shí)現(xiàn)搜索引擎中的Searcher模塊。通過Web的形式向用戶提供檢索的功能,接收用戶的查詢請求。首先進(jìn)行中文分詞,將接收到的用戶請求信息分割成若干個關(guān)鍵詞,最終進(jìn)行高亮、分頁處理反饋給用戶。 日志管理模塊在對數(shù)據(jù)抓取、保存、索引、更新時可能發(fā)生各種各樣的問題,造成數(shù)據(jù)的丟失甚至損壞。日志管理模塊提供了一種安全操作數(shù)據(jù)記錄的機(jī)制。日志管理模塊采用Log4net進(jìn)行日志的操作??梢詫⑷罩痉植煌募墑e,不同的樣式,保存到不同的媒介中。日志管理模塊在提供了安全機(jī)制的同時也增加了磁盤讀取的次數(shù),對系統(tǒng)的性能產(chǎn)生一定影響??梢圆皇褂迷撃K以提高系統(tǒng)性能。EarthSearch系統(tǒng)整體結(jié)構(gòu)如圖41所示。網(wǎng)頁抓取配置管理互聯(lián)網(wǎng)信息檢索系統(tǒng)配置管理模塊數(shù)據(jù)抓取模塊數(shù)據(jù)索引模塊數(shù)據(jù)檢索模塊數(shù)據(jù)索引配置管理網(wǎng)頁數(shù)據(jù)存儲網(wǎng)頁文件存儲索引數(shù)據(jù)管理中文分詞數(shù)據(jù)檢索與顯示系統(tǒng)日志信息管理日志管理模塊Html文件的解析圖41 EarthSearch系統(tǒng)結(jié)構(gòu)圖 系統(tǒng)處理流程設(shè)計(jì) 數(shù)據(jù)抓取處理流程使用多線程進(jìn)行網(wǎng)頁數(shù)據(jù)的采集,首先對入口URL的HTML進(jìn)行解析,從中獲取HTML所有URL地址,添加到待解析的URL隊(duì)列中,將HTML中核心數(shù)據(jù)保存到數(shù)據(jù)庫,并將文件下載到服務(wù)器。空閑線程從待解析的URL隊(duì)列中獲取URL,同步進(jìn)行網(wǎng)頁數(shù)據(jù)的解析和下載工作。數(shù)據(jù)抓取執(zhí)行過程如圖42所示。初始化線程池開啟空閑線程獲取入口URL地址網(wǎng)頁獲取網(wǎng)頁分析獲取網(wǎng)頁中所有超鏈接,同時存儲網(wǎng)頁數(shù)據(jù)添加到待解析的超鏈接隊(duì)列中添加到已解析的超鏈接隊(duì)列中判斷是否已解析?是否開始停止啟動功能選擇結(jié)束圖42 網(wǎng)頁數(shù)據(jù)抓取流程圖 數(shù)據(jù)索引處理流程;,對document對象進(jìn)行索引數(shù)據(jù)的寫入,保存在內(nèi)存中;最后輸出內(nèi)存數(shù)據(jù)生成索引文件數(shù)據(jù)索引執(zhí)行過程如圖43所示。以document對象形式傳入數(shù)據(jù)庫待索引數(shù)據(jù)生成field對象生成document對象,調(diào)用add方法加入field對象加入document對象生成小段分析文檔寫入索引信息排序位置信息內(nèi)存文件系統(tǒng)索引文件準(zhǔn)備階段索引構(gòu)建階段字節(jié)流輸入合并輸出開始結(jié)束圖43 網(wǎng)頁數(shù)據(jù)索引流程圖 數(shù)據(jù)檢索處理流程以網(wǎng)站的形式提供數(shù)據(jù)檢索功能。用戶首先在網(wǎng)站上輸入要檢索的關(guān)鍵詞,將其傳到服務(wù)器;服務(wù)器對關(guān)鍵詞進(jìn)行中文詞法分析,在索引數(shù)據(jù)庫中進(jìn)行查找,最終將檢索結(jié)果返回給用戶。數(shù)據(jù)索引執(zhí)行過程如圖44所示??蛻舳溯斎霗z索關(guān)鍵詞服務(wù)器端等待接收關(guān)鍵詞將關(guān)鍵詞發(fā)送到服務(wù)器在索引數(shù)據(jù)庫中進(jìn)行查找,并將結(jié)果返回給用戶對關(guān)鍵詞進(jìn)行中文分詞結(jié)束結(jié)束顯示查詢結(jié)果發(fā)送關(guān)鍵詞返回查詢結(jié)果圖44 數(shù)據(jù)檢索通信流程圖 5 系統(tǒng)實(shí)現(xiàn)本章討論信息檢索系統(tǒng)功能的實(shí)現(xiàn)方法。由于本系統(tǒng)的功能和模塊較多實(shí)現(xiàn)較復(fù)雜,本章選擇了有代表性的幾個功能的實(shí)現(xiàn)方法進(jìn)行介紹,主要包括如下幾個方面:(1) 多線程網(wǎng)頁數(shù)據(jù)抓?。?2) HTML文檔的掃描與分析;(3) 數(shù)據(jù)的索引;(4) 數(shù)據(jù)的檢索。 多線程網(wǎng)頁數(shù)據(jù)抓取要想使網(wǎng)絡(luò)蜘蛛在有限的硬件環(huán)境下盡可能地提高下載速度。最廉價和快捷的方法就是使用多線程。 數(shù)據(jù)抓取主界面設(shè)計(jì)由于網(wǎng)頁數(shù)據(jù)抓取程序需要通過配置文件進(jìn)行參數(shù)的初始化,所以在數(shù)據(jù)抓取界面上應(yīng)對下載文件保存路徑,抓取入口,線程數(shù)等進(jìn)行相應(yīng)的設(shè)置。網(wǎng)頁抓取界面如圖51所示。圖51 網(wǎng)頁抓取界面 多線程的實(shí)現(xiàn) 。其中的核心線程類是Thread。一般可使用如下的代碼創(chuàng)建并運(yùn)行一個線程:在C中使用線程的代碼:private void fun(){// 線程要執(zhí)行的代碼}public void testThread(){ Thread thread。thread = new Thread(fun)。 ()。}一般來說,網(wǎng)絡(luò)蜘蛛都是使用多線程來下載網(wǎng)絡(luò)資源的。至于如何使用多線程來下載,各個版本的網(wǎng)絡(luò)蜘蛛不盡相同。本文我們采用線程數(shù)組的形式來實(shí)現(xiàn)多線程操作。實(shí)現(xiàn)的主要方法如下:private Thread[] threads。public void Start(){ timer = new HighResolutionTimer()。//實(shí)例化計(jì)時器 ()。 for (int i = 0。 i 。 i++) { Spider worker = new Spider()。 = this。 threads[i] = new Thread(new ThreadStart())。 threads[i].Name = 線程 + (i + 1).ToString()。 (worker)。 threads[i].Start()。 }首先設(shè)定一個網(wǎng)頁爬行入口點(diǎn),通過解析HTML,將文檔中所有的URL添加到待訪問URL的哈希表中。然后依次分配給每一個空閑的線程進(jìn)行數(shù)據(jù)的下載。具體代碼如下:private void Run(){ while (!) { if ( == 0) { (Name + waiting 1000)。 if (waitTimes == 10) { (Name)。 waitTimes = 0。 } (1000)。 waitTimes++。 } else { waitTimes = 0。 lock (manager) { while (true)
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1