【正文】
這些都是還有待進(jìn)一步改善的地方。動(dòng)態(tài)測(cè)試一般用兩種方法:一是黑盒測(cè)試法,一是白盒測(cè)試法。 myrow[0] = (title).ToString()。KeyWord = [keyword].ToString()。圖52 索引參數(shù)設(shè)置界面 索引網(wǎng)頁(yè)數(shù)據(jù)由于用戶不能直接對(duì)抓取的數(shù)據(jù)進(jìn)行檢索,所以在提供數(shù)據(jù)檢索功能之前,需要進(jìn)行數(shù)據(jù)索引操作。 if (stream != null) ()。 Stream stream = null。 } else { waitTimes = 0。//實(shí)例化計(jì)時(shí)器 ()??蛻舳溯斎霗z索關(guān)鍵詞服務(wù)器端等待接收關(guān)鍵詞將關(guān)鍵詞發(fā)送到服務(wù)器在索引數(shù)據(jù)庫(kù)中進(jìn)行查找,并將結(jié)果返回給用戶對(duì)關(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)方法。通過(guò)Web的形式向用戶提供檢索的功能,接收用戶的查詢請(qǐng)求。各模塊在實(shí)現(xiàn)上具有高度可隔離性。系統(tǒng)使用C語(yǔ)言進(jìn)行開(kāi)發(fā), Framework下,主要支持Windows操作系統(tǒng),同時(shí)也可以移植到其他平臺(tái)。 writer = new IndexWriter(Index_Path, new StandardAnalyzer(), true)。在實(shí)際應(yīng)用中,設(shè)計(jì)具體的搜索器,包括默認(rèn)域的指定,搜索域的接收,索引庫(kù)位置的接收,以及多個(gè)查詢通過(guò)布爾操作符連接起來(lái)形成復(fù)雜的查詢語(yǔ)句的功能。,如圖34所示。而域集合與項(xiàng)集合之間則通過(guò)域的在域記錄文件()中所記錄的域記錄號(hào)維持對(duì)應(yīng)關(guān)系。:提供一個(gè)全文索引引擎的架構(gòu),而不是實(shí)現(xiàn)。Corpus(語(yǔ)料庫(kù))中是需要被解析的文檔。根據(jù)各網(wǎng)頁(yè)的匹配程度,結(jié)合網(wǎng)頁(yè)的Page Rank值對(duì)檢索結(jié)果進(jìn)行排序后返回給用戶?;ガF(xiàn)信息體現(xiàn)了漢字之間結(jié)合關(guān)系的緊密程度。一般說(shuō)來(lái),逆向匹配的切分精度略高于正向匹配,遇到的歧義現(xiàn)象也較少。研究搜索引擎的頁(yè)面優(yōu)先度算法,需要從客觀和主觀兩方面進(jìn)行研究。一些新的嘗試,比如對(duì)用戶偏好的分析技術(shù)都可以運(yùn)用到這里,對(duì)不同的用戶采用不同的排序策略。頁(yè)面數(shù)據(jù)服務(wù)器中間數(shù)據(jù)索引數(shù)據(jù)圖23 Indexer索引數(shù)據(jù)結(jié)構(gòu)圖Indexer首先從頁(yè)面存儲(chǔ)器中獲取頁(yè)面數(shù)據(jù),對(duì)其進(jìn)行分析,通過(guò)詞典識(shí)別網(wǎng)頁(yè)中的詞,通過(guò)停用詞(stop words)表刪除其中的停用詞,生成檢索詞序列,并最后生成索引數(shù)據(jù)。Crawler利用HTTP協(xié)議讀取Web頁(yè)面并沿著HTML文檔中的超鏈接自動(dòng)獲取WWW資源。巨大的使用需求推動(dòng)了搜索引擎技術(shù)的發(fā)展,各種新技術(shù)紛紛應(yīng)用到搜索引擎中。雖然該技術(shù)日前還處于初步研究階段,其難點(diǎn)在于語(yǔ)言之間在表達(dá)方式和語(yǔ)義對(duì)應(yīng)上的不確定性,但也是一種發(fā)展方向。(1) 智能化搜索智能化是搜索引擎未來(lái)的發(fā)展方向。IBM Almaden研究中心研制了Clever系統(tǒng),提出了類似于PageRank的HITS算法,主要不同是將網(wǎng)頁(yè)分為Authority和Hub兩類,并就HITS算法在相關(guān)度評(píng)價(jià)、網(wǎng)頁(yè)分類、主題搜索等方面的作用進(jìn)行了研究。檢索器(Searcher)負(fù)責(zé)接受用戶查詢的請(qǐng)求,一般采用Web形式,通過(guò)索引找到相關(guān)信息的網(wǎng)頁(yè)數(shù)據(jù),返回給用戶。關(guān)鍵詞 搜索引擎;;數(shù)據(jù)存儲(chǔ);信息檢索IABSTRACTInternet information retrieval system (search engine) is designed to provide a platform for information retrieval will collect a lot of pages data on the Internet to the server,and processed form of the information database and index to achieve the user to respond to the various information retrieval. The system uses Microsoft Visual Studio 2005 as the main development tool, to run Windows Server 2003 operating system environment, the main achievement of the web crawl data, web data storage, data indexing, data retrieval, logging management and other functions.In this paper, several Internet information retrieval system design and implementation of key technologies were studied. Theory on these key technologies are discussed in detail, and pleted the Internet information retrieval system based on realization. The article discussed the following aspects:First of all, the article describes the search engine market demand and research part discusses the search engine rich historical background and objective of the user requirements, its own characteristics, as well as people paid more attention to search engine.Secondly, the article discusses the basic structure of search engines, to achieve the theoretical basis and implementation methods. This part of the search engine39。其次,本文討論了搜索引擎中基本結(jié)構(gòu)、實(shí)現(xiàn)的理論基礎(chǔ)和實(shí)現(xiàn)方法。搜索引擎技術(shù)作為傳統(tǒng)IR(Information Retrieval)技術(shù)在Internet上的擴(kuò)展,涉及到Web數(shù)據(jù)的采集,中文分詞技術(shù),倒排索引,海量數(shù)據(jù)存儲(chǔ),用戶行為分析等關(guān)鍵技術(shù)。在IEEE主辦的國(guó)際萬(wàn)維網(wǎng)會(huì)議(International World Wide Web Conference)和ACM主辦的人機(jī)交互會(huì)議(Computer Human Interaction,CHI)等重要學(xué)術(shù)會(huì)議上,發(fā)表了越來(lái)越多的關(guān)于搜索引擎技術(shù)研究的文章。 搜索引擎技術(shù)發(fā)展方向經(jīng)過(guò)了多年的發(fā)展,現(xiàn)在的搜索引擎功能越來(lái)越強(qiáng)大,提供的服務(wù)也越來(lái)越全面。e)讓用戶對(duì)返回結(jié)果進(jìn)行選擇,進(jìn)行二次查詢是一種非常有效的手段。此外還有一些其它值得注意的技術(shù)發(fā)展,如元搜索引擎,移動(dòng)代理和XML技術(shù),語(yǔ)音檢索技術(shù)等。Crawler工作原理如圖22所示。具體地,關(guān)鍵詞被存儲(chǔ)在索引文件(index file)中,對(duì)于每個(gè)關(guān)鍵詞,都有一個(gè)指針鏈表,該表中的每一個(gè)指針指向與關(guān)鍵詞相關(guān)的某個(gè)頁(yè)面,所有指針鏈表構(gòu)成置入文件(posting file)。Searcher索引數(shù)據(jù)頁(yè)面數(shù)據(jù)用戶接口圖24 Searcher基本結(jié)構(gòu)圖Searcher通過(guò)某種接口方式,接收用戶查詢,對(duì)查詢進(jìn)行分詞(stemming)處理,獲取查詢關(guān)鍵字。目前的搜索引擎系統(tǒng)都非常關(guān)心精度。S是否為單字S2=S2+S+”/”S1=S1S是是是否否否帶切分字符 S1,輸出字符 S2最大詞長(zhǎng) MaxLenS1是否為空輸出 S2最大詞長(zhǎng) MaxLen從S1右側(cè)開(kāi)始,取出候選字符串S,S的長(zhǎng)度不大于MaxLan查看字典,判斷S是否在字典中將S最左邊一個(gè)字去掉最大詞長(zhǎng) MaxLen開(kāi)始結(jié)束圖26逆向最大匹配法實(shí)現(xiàn)流程圖(3) 最少切分(使每一句中切出的詞數(shù)最小)。因此字與字相鄰共現(xiàn)的頻率或概率能夠較好的反映成詞的可信度。Crawler根據(jù)獲取URL列表進(jìn)行網(wǎng)頁(yè)抓取,已抓取的網(wǎng)頁(yè)被送往Store Server進(jìn)行保存。各個(gè)模塊之間保持固定的協(xié)議,將實(shí)現(xiàn)方法隱藏起來(lái)。在每個(gè)局部細(xì)節(jié)上,比如某些常用的數(shù)據(jù)結(jié)構(gòu)與算法上。.fnm各個(gè)域的名字信息.frq詞元(term)的頻率信息.prxterm在文檔中的位置信息.tis包含term數(shù)據(jù)信息,指向位置文件與頻率文件的指針.tii,.tvd保存有document信息,用詞元向量(TermVector)方式保存field的信息,同它包含一個(gè)指針表,deletable包含要?jiǎng)h除的文檔信息保存了相關(guān)段的信息每個(gè)段的文件中,主要記錄了兩類的信息:域集合和項(xiàng)集合。 數(shù)據(jù)流分析。因此我們需要按照目標(biāo)語(yǔ)言的詞法結(jié)構(gòu)來(lái)構(gòu)建相應(yīng)的詞法分析邏輯。 if ( == ) { ()。}當(dāng)然。 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)系統(tǒng)在功能上采用分層方式,盡量減少層與層之間的耦合度,同時(shí)通過(guò)對(duì)模塊功能進(jìn)行精心劃分,取得了很好的可配置性。 數(shù)據(jù)檢索模塊數(shù)據(jù)檢索模塊主要為用戶提供數(shù)據(jù)檢索的功能。以document對(duì)象形式傳入數(shù)據(jù)庫(kù)待索引數(shù)據(jù)生成field對(duì)象生成document對(duì)象,調(diào)用add方法加入field對(duì)象加入document對(duì)象生成小段分析文檔寫入索引信息排序位置信息內(nèi)存文件系統(tǒng)索引文件準(zhǔn)備階段索引構(gòu)建階段字節(jié)流輸入合并輸出開(kāi)始結(jié)束圖43 網(wǎng)頁(yè)數(shù)據(jù)索引流程圖 數(shù)據(jù)檢索處理流程以網(wǎng)站的形式提供數(shù)據(jù)檢索功能。本文我們采用線程數(shù)組的形式來(lái)實(shí)現(xiàn)多線程操作。 waitTimes = 0。} 網(wǎng)頁(yè)文件下載通過(guò)WebResponse,HttpWebRequest對(duì)象對(duì)文件進(jìn)行下載,數(shù)據(jù)可以是二進(jìn)制格式,也可以是文本類型數(shù)據(jù)。 return。 } else { return title。圖54 數(shù)據(jù)檢索主界面 檢索索引數(shù)據(jù)客戶端將要檢索的關(guān)鍵詞傳遞到服務(wù)器,服務(wù)器端處理程序首先對(duì)關(guān)鍵詞進(jìn)行分析,然后從索引文件中進(jìn)行查找,將符合匹配的結(jié)果返回給客戶端。 i ()。 測(cè)試基礎(chǔ)(1) 測(cè)試的目的測(cè)試的目的,是想以最少的人力、物力和時(shí)間找出軟件中潛在的各種錯(cuò)誤和缺陷,通過(guò)修正各種錯(cuò)誤和缺陷提高軟件質(zhì)量,回避軟件發(fā)布后由于潛在的產(chǎn)品缺陷和錯(cuò)誤造成的隱患所帶來(lái)的風(fēng)險(xiǎn)。為檢索模塊提供數(shù)據(jù)來(lái)源。在軟件的開(kāi)發(fā)過(guò)程中,知道了許多編程的技巧,積累了許多設(shè)計(jì)方面的經(jīng)驗(yàn)。 模塊測(cè)試模塊測(cè)試就是把各個(gè)模塊看成一個(gè)小整體,采用靜態(tài)測(cè)試和白盒測(cè)試法來(lái)測(cè)試各模塊是否滿足要求。 (myrow)。QueryParser q = new QueryParser(indexcontent, new StandardAnalyzer())。數(shù)據(jù)庫(kù)待索引數(shù)據(jù)生成field對(duì)象,暫存在SqlDataReader中內(nèi)存文件系統(tǒng)索引文件圖53 生成索引文件基本流程代碼實(shí)現(xiàn)如下:public void AddDocument(SqlDataReader dr){ try { while (()) { Document doc = new Document()。文件頭(TITLE)包含文檔的標(biāo)題,以及其它相關(guān)屬性,這些內(nèi)容不顯示在瀏覽器的頁(yè)面中。 response = ()。 ++。 i++) { Spider worker = new Spider()。最廉價(jià)和快捷的方法就是使用多線程。日志管理模塊提供了一種安全操作數(shù)據(jù)記錄的機(jī)制。使用SOAP格式的XML進(jìn)行相關(guān)配置的保存,C對(duì)XML的操作具有很好的支持,可以高效的實(shí)現(xiàn)對(duì)XML節(jié)點(diǎn)、屬性等方面的操作。 (new Field(title, dr[Title].ToString(), , ))。比如改進(jìn)其索引的效率,設(shè)置權(quán)重,操作索引庫(kù),改進(jìn)其返回結(jié)果時(shí)候的緩沖機(jī)制等等。圖中共存在4種數(shù)據(jù)流,分別是文件流,token流,字節(jié)流與查詢語(yǔ)句對(duì)象流。這樣,整個(gè)段的索引信息就通過(guò)這些文檔有機(jī)的組成。,以字節(jié)為基礎(chǔ),定義了數(shù)據(jù)類型,由于它們都以字節(jié)為基礎(chǔ)定義而來(lái),因此保證了平臺(tái)無(wú)關(guān)的特性。需要對(duì)被索引的文件進(jìn)行分析,對(duì)于搜索過(guò)程而言,用戶輸入的查詢條件,也需要通過(guò)解析(Analysis),通過(guò)相同的解析過(guò)程后,用戶的查詢信息才能和從文本解析出的信息相匹配,才能返回給用戶正確的結(jié)果。提供了完整的查詢引擎和索引引擎,部分文本分析引擎(英文與德文兩種西方語(yǔ)言)。解壓后的頁(yè)面數(shù)據(jù)被轉(zhuǎn)換成一組稱為hits的結(jié)構(gòu)。但這種方法也有一定的局限性,會(huì)經(jīng)常抽出一些共現(xiàn)頻度高、但并不是詞的常用字組,例如“這一”、“之一”、“有的”