【搜索引擎的設(shè)計與實現(xiàn)5800字(論文)】_第1頁
【搜索引擎的設(shè)計與實現(xiàn)5800字(論文)】_第2頁
【搜索引擎的設(shè)計與實現(xiàn)5800字(論文)】_第3頁
【搜索引擎的設(shè)計與實現(xiàn)5800字(論文)】_第4頁
【搜索引擎的設(shè)計與實現(xiàn)5800字(論文)】_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

PAGE4搜索引擎的設(shè)計與實現(xiàn)目錄TOC\o"1-3"\h\u12861一、引言 426364二、需求分析 429897(一)開發(fā)背景 425141(二)系統(tǒng)功能 5175781.功能劃分 539822.功能描述 516588三、系統(tǒng)設(shè)計 632071(一)系統(tǒng)整體架構(gòu) 61379(二)系統(tǒng)模塊設(shè)計 6270911.數(shù)據(jù)采集模塊 6260872.搜索引擎模塊 722128(三)數(shù)據(jù)庫設(shè)計 829623四、系統(tǒng)實現(xiàn) 914259(一)數(shù)據(jù)采集 97927(二)搜索引擎的實現(xiàn) 1431596(三)數(shù)據(jù)訪問層的實現(xiàn) 1727514五、系統(tǒng)測試 205757(一)系統(tǒng)測試的必要性 20168011.單元測試 2088612.集成測試 20255033.驗收測試 214905(二)采集數(shù)據(jù)模塊的測試 214489(三)搜索引擎的測試 22357六、總結(jié) 2321472參考文獻(xiàn) 26一、引言搜索引擎,通常指的是收集了互聯(lián)網(wǎng)上幾千萬到幾十億個網(wǎng)頁并對網(wǎng)頁中的每一個文字(即關(guān)鍵詞)進(jìn)行索引,建立索引數(shù)據(jù)庫的全文搜索引擎。當(dāng)用戶查找某個關(guān)鍵詞的時候,所有在頁面內(nèi)容中包含了該關(guān)鍵詞的網(wǎng)頁都將作為搜索結(jié)果被搜出來。在經(jīng)過復(fù)雜的算法進(jìn)行排序后,這些結(jié)果將按照與搜索關(guān)鍵詞的相關(guān)度高低,依次排列。隨著信息化的發(fā)展,越來越多的人通過搜索引擎來尋找自己所需要的東西,用戶在搜索引擎中輸入某一關(guān)鍵詞的時候,會有成千上萬甚至百萬千萬上億的結(jié)果,那么在茫茫的信息海洋中我們?nèi)绾尾拍茏層脩粽业轿覀兙W(wǎng)站上相關(guān)的內(nèi)容呢?互聯(lián)網(wǎng)的信息如浩瀚的海洋一樣,如何在這個無邊無際的海洋找出對用戶最有用的信息就是搜索引擎的主要作用。搜索引擎,往往是大多數(shù)用戶進(jìn)入互聯(lián)網(wǎng)的入口。搜索引擎的出現(xiàn),整合了眾多網(wǎng)站信息,恰恰起到了信息導(dǎo)航的作用。通用搜索引擎就如同互聯(lián)網(wǎng)第一次出現(xiàn)的門戶網(wǎng)站一樣,大量的信息整合導(dǎo)航,極快的查詢,將所有網(wǎng)站上的信息整理在一個平臺上供網(wǎng)民使用,于是信息的價值第一次普遍的被眾多商家認(rèn)可,迅速成為互聯(lián)網(wǎng)中最有價值的領(lǐng)域。搜索引擎的便捷使其成為互聯(lián)網(wǎng)最受歡迎的應(yīng)用之一。以至于有相當(dāng)多的人將瀏覽器的默認(rèn)首頁設(shè)為搜索引擎,甚至形成了將網(wǎng)站名稱輸入到搜索框中而非瀏覽器地址欄這樣獨特的網(wǎng)絡(luò)導(dǎo)航習(xí)慣??偟膩碚f,搜索引擎直接改變了人們的網(wǎng)絡(luò)習(xí)慣,人們進(jìn)入網(wǎng)絡(luò)第一個想到的就是搜索引擎。網(wǎng)絡(luò)化就是信息化,在網(wǎng)絡(luò)化的今天、信息爆炸式增長的今天。研究搜索引擎具有重要而深遠(yuǎn)的意義。二、需求分析(一)開發(fā)背景而隨著新聞技術(shù)的飛速發(fā)展,特別是因特網(wǎng)應(yīng)用的迅速普及,網(wǎng)站越來越多,并且每天全球互聯(lián)網(wǎng)網(wǎng)頁數(shù)目以千萬級的數(shù)量增加。要在浩瀚的網(wǎng)絡(luò)新聞中尋找所需要的材料無異于大海撈針。網(wǎng)頁是因特網(wǎng)的最重要組成部分,也是人們獲取網(wǎng)絡(luò)信息的最主要來源,為了方便人們在大量繁雜的網(wǎng)頁中尋找出自己需要的信息,搜索引擎就應(yīng)運而生了。搜索引擎是人們網(wǎng)上購物、看電影、看小說、看圖片等網(wǎng)絡(luò)使用中的第一個首選入口。其重要性不言而喻?;ヂ?lián)網(wǎng)的海量信息,讓人眼花繚亂,如果在短時間內(nèi)沒有找到用戶想要的信息,不僅影響用戶的心情,而且影響用戶的工作效率。所以搜索引擎最核心也是最重要的是對關(guān)鍵字的匹配程度。匹配程度越高得到的結(jié)果越貼近用戶的需求,也越得到用戶的青睞。目前的搜索引擎可分為三類:一是全文搜索引擎,它是從互聯(lián)網(wǎng)提取各個網(wǎng)站的信息(以網(wǎng)頁文字為主),建立起數(shù)據(jù)庫,并能檢索與用戶查詢條件相匹配的記錄,按一定的排列順序返回結(jié)果。二是目錄索引,它是按目錄分類的網(wǎng)站鏈接列表而已,用戶完全可以按照分類目錄找到所需要的信息,不依靠關(guān)鍵詞進(jìn)行查詢。三是元搜索引擎,他先是接受用戶查詢請求后,同時在多個搜索引擎上搜索,并將結(jié)果返回給用戶。(二)系統(tǒng)功能1.功能劃分主要功能包括:數(shù)據(jù)采集、數(shù)據(jù)保存、數(shù)據(jù)排序、搜索引擎、前臺顯示。2.功能描述(1)數(shù)據(jù)采集對指定鏈接的網(wǎng)頁中的所有的超連接進(jìn)行采集,然后對沒一條超鏈接進(jìn)行進(jìn)一步的解析,按一定的規(guī)則把超鏈接的網(wǎng)頁的內(nèi)容采集出來。(2)數(shù)據(jù)保存把采集到的數(shù)據(jù)保存到數(shù)據(jù)庫。數(shù)據(jù)的主要內(nèi)容包括:網(wǎng)頁標(biāo)題、作者、內(nèi)容、發(fā)表時間、鏈接地址。(3)數(shù)據(jù)排序?qū)Ψ纤阉鳁l件的數(shù)據(jù)進(jìn)行排序,排序規(guī)則是關(guān)鍵字的匹配和網(wǎng)頁的發(fā)表時間。(4)搜索引擎首先響應(yīng)用戶的HTTP請求,獲取搜索關(guān)鍵字;然后查詢數(shù)據(jù)庫里面匹配關(guān)鍵字的數(shù)據(jù),把符合條件的數(shù)據(jù)提取出來,存到一個臨時表中;最后查詢臨時表的數(shù)據(jù)并排序,返回數(shù)據(jù)。(5)前臺顯示獲取從服務(wù)器返回的數(shù)據(jù),按照一定的規(guī)則顯示在最后的顯示頁面。三、系統(tǒng)設(shè)計(一)系統(tǒng)整體架構(gòu)該系統(tǒng)所采用的B/S模式在邏輯體系結(jié)構(gòu)上可以分為用戶表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)服務(wù)層3層體系統(tǒng)結(jié)構(gòu).B/S模式有著C/S模式不可比擬的優(yōu)勢,如:簡化了客戶端,不論基于何種平臺,只須安裝一種通用的瀏覽器,采用同樣的界面訪問;能夠跨越異質(zhì)異構(gòu)網(wǎng)絡(luò);穩(wěn)定性高;特別適用于網(wǎng)上信息發(fā)布;服務(wù)器端升級維護(hù)集中、方便,服務(wù)器端可以任意擴充,而對客戶端不產(chǎn)生任何影響等.圖3.1為B/S模式體系結(jié)構(gòu)圖.圖3.1B/S模式體系結(jié)構(gòu)圖(二)系統(tǒng)模塊設(shè)計按照系統(tǒng)分析的結(jié)果,搜索引擎系統(tǒng)設(shè)計的主要是實現(xiàn)數(shù)據(jù)采集、數(shù)據(jù)保存、數(shù)據(jù)排序、搜索引擎、前臺顯示。根據(jù)整體的需求,這個系統(tǒng)也可以分為兩個大的分類,即采集數(shù)據(jù)和顯示數(shù)據(jù)。所以搜索系統(tǒng)主要可以分成兩個模塊:數(shù)據(jù)采集模塊和搜索引擎模塊。1.數(shù)據(jù)采集模塊數(shù)據(jù)采集模塊的功能又稱“網(wǎng)絡(luò)蜘蛛”。顧名思義,網(wǎng)絡(luò)蜘蛛就是在網(wǎng)絡(luò)上爬行的程序,用他來抓取web服務(wù)器上的web文檔,它可以在掃描web頁面的同時檢索其內(nèi)的超鏈接并加入掃描隊列等待以后掃描。掃描隊列主要掃描URL鏈接和URL鏈接下的網(wǎng)頁內(nèi)容,包括:網(wǎng)頁標(biāo)題、作者、內(nèi)容、發(fā)表時間、鏈接地址。獲取到的數(shù)據(jù),逐一保存到數(shù)據(jù)庫中去。具體實現(xiàn)邏輯如圖。圖3.2數(shù)據(jù)采集流程圖2.搜索引擎模塊搜索引擎模塊主要完成用戶對數(shù)據(jù)的搜索功能。用戶使用瀏覽器,輸入搜索的關(guān)鍵字,點擊提交。服務(wù)器收到用戶發(fā)出的搜索請求,獲取請求中的搜索關(guān)鍵字,然后到數(shù)據(jù)庫中搜索匹配關(guān)鍵字的數(shù)據(jù)。取出匹配的數(shù)據(jù)之后按一定的規(guī)則排序,最后返回展示到用戶界面。整個模塊采用的是MVC三層設(shè)計模式,M層(即Modle層)代表實體數(shù)據(jù)模塊,V層(即View層)代表數(shù)據(jù)展示模塊,C層(即Control層)代表邏輯控制模塊。具體設(shè)計邏輯如圖。圖3.3搜索引擎流程圖(三)數(shù)據(jù)庫設(shè)計根據(jù)系統(tǒng)要求與模塊設(shè)計,數(shù)據(jù)庫設(shè)計主要分成兩個表:數(shù)據(jù)表和排序臨時表。數(shù)據(jù)表的主要作用是存儲“數(shù)據(jù)采集器”采集下來的數(shù)據(jù),排序臨時表是根據(jù)搜索關(guān)鍵字取出來排序的數(shù)據(jù)。數(shù)據(jù)表包括的字段有:編號、標(biāo)題、作者、內(nèi)容、發(fā)表時間、鏈接地址。表3.1數(shù)據(jù)表字段名是否主鍵字段類型字段長度是否為允許為空備注id是bigint32否編號newstitle否varchar100是標(biāo)題newsauthor否varchar100是作者newscontent否text65535是內(nèi)容newsurl否varchar300是鏈接地址newsdate否varchar100是日期排序臨時表包括的字段有:編號、標(biāo)題、作者、內(nèi)容、發(fā)表時間、鏈接地址。表3.2排序臨時表字段名是否主鍵字段類型字段長度是否為允許為空備注id是bigint32否編號newstitle否varchar100是標(biāo)題newsauthor否varchar100是作者newscontent否text65535是內(nèi)容newsurl否varchar300是鏈接地址newsdate否varchar100是日期newsdate_int否varchar100是日期數(shù)值四、系統(tǒng)實現(xiàn)(一)數(shù)據(jù)采集數(shù)據(jù)采集的實現(xiàn)主要是用了javaswing技術(shù)。在操作界面中有url輸入框、設(shè)置抓取周期輸入框。url指的是采集目標(biāo)的網(wǎng)址。抓取周期是隔一定的時間抓取一次。當(dāng)點擊開始按鈕時,系統(tǒng)會檢查輸入url的合法性,如果url合法,則檢查抓取周期是否輸入。檢查都通過后,系統(tǒng)啟動線程抓取數(shù)據(jù)。實現(xiàn)效果如圖。圖4.1數(shù)據(jù)采集界面解析數(shù)據(jù)的實現(xiàn)主要用到了開源jar包htmlparser.jar,htmlparser.jar可以實現(xiàn)對幾乎全部網(wǎng)頁的解析。里面包含有多種解析方法。本系統(tǒng)中主要用到了標(biāo)題解析、內(nèi)容解析、作者解析、日期解析。標(biāo)題解析的實現(xiàn)代碼如下:NodeFiltertitleFilter=newTagNameFilter("title");privateStringgetTitle(NodeFiltertitleFilter,Parserparser){StringtitleName="";try{NodeListtitleNodeList=(NodeList)parser.parse(titleFilter);if(titleNodeList.size()>0){ Nodenode_title=titleNodeList.elementAt(0);//取節(jié)點 if(node_title!=null){ titleName=node_title.toPlainTextString(); }}}catch(ParserExceptionex){ex.printStackTrace();}returntitleName;}內(nèi)容解析的實現(xiàn)代碼如下:NodeFiltercontentFilter1=newAndFilter(newTagNameFilter("div"),newHasAttributeFilter("id","Cnt-Main-Article-QQ"));NodeFiltercontentFilter2=newAndFilter(newTagNameFilter("div"),newHasAttributeFilter("class","explain"));NodeFiltercontentFilter=newOrFilter(contentFilter1,contentFilter2);privateStringgetNewsContent(NodeFilternewsContentFilter,Parserparser){Stringcontent=null;StringBuilderbuilder=newStringBuilder();try{NodeListnewsContentList=(NodeList)parser.parse(newsContentFilter);for(inti=0;i<newsContentList.size();i++){ DivnewsContenTag=(Div)newsContentList.elementAt(i);builder=builder.append(newsContenTag.getStringText());}content=builder.toString();if(content!=null){parser.reset();parser=Parser.createParser(content,"gb2312");StringBeansb=newStringBean();sb.setCollapse(true);parser.visitAllNodesWith(sb);content=sb.getStrings();if(content!=null){content=content.replaceAll("\\\".*[a-z].*\\}","");content=content.replace("[我來說兩句]","");}}else{System.out.println("沒有得到新聞內(nèi)容!");}}catch(ParserExceptionex){ex.printStackTrace();}returncontent;}作者解析的實現(xiàn)代碼如下:NodeFilternewsauthorFilter1=newAndFilter(newTagNameFilter("div"),newHasAttributeFilter("class","ll"));NodeFilternewsauthorFilter2=newAndFilter(newTagNameFilter("span"),newHasAttributeFilter("class","color-a-3"));NodeFilternewsauthorFilter=newAndFilter(newsauthorFilter2,newHasParentFilter(newsauthorFilter1));privateStringgetNewsAuthor(NodeFilternewsauthorFilter,Parserparser){StringnewsAuthor="";try{ //依據(jù)newsauthorFilter的法則對網(wǎng)頁進(jìn)行過濾NodeListauthorList=(NodeList)parser.parse(newsauthorFilter);//獲取責(zé)任編輯字符串for(inti=0;i<authorList.size();i++){ SpanauthorSpan=(Span)authorList.elementAt(i);newsAuthor=authorSpan.getStringText();}}catch(ParserExceptionex){ex.printStackTrace();}returnnewsAuthor;}日期解析的實現(xiàn)代碼如下:NodeFilternewsdateFilter1=newAndFilter(newTagNameFilter("div"),newHasAttributeFilter("class","ll"));NodeFilternewsdateFilter2=newAndFilter(newTagNameFilter("span"),newHasAttributeFilter("class","article-time"));NodeFilternewsdateFilter=newAndFilter(newsdateFilter2,newHasParentFilter(newsdateFilter1));privateStringgetNewsDate(NodeFilterdateFilter,Parserparser){StringnewsDate="";try{NodeListdateList=(NodeList)parser.parse(dateFilter);for(inti=0;i<dateList.size();i++){ SpandateTag=(Span)dateList.elementAt(i);newsDate=dateTag.getStringText();}}catch(ParserExceptionex){ex.printStackTrace();}returnnewsDate;}(二)搜索引擎的實現(xiàn)搜索引擎的實現(xiàn)是整個系統(tǒng)的核心部分,其主要要解決的問題是提取出匹配搜索關(guān)鍵字的數(shù)據(jù),并進(jìn)行排序。關(guān)鍵字的匹配方式是:先用關(guān)鍵字和數(shù)據(jù)庫中的newstitle字段進(jìn)行匹配,然后再匹配newscontent字段。排列的方式是:先把時間轉(zhuǎn)換成數(shù)字形式,然后用SQL語句中的從大到小排序。圖4.2搜索引擎實現(xiàn)流程圖實現(xiàn)查詢數(shù)據(jù)的關(guān)鍵代碼如下:publicList<NewsBean>getNews(intstart,intend,StringkeyWord){ DBdb=newDB(); List<NewsBean>list=newArrayList<NewsBean>(); ResultSetresult=null; try{ StringgetSql="select*fromsortedNewsorderbynewsdate_intDESClimit"+start+","+end; System.out.println(getSql); result=db.executeQuery(getSql); if(null!=result){ while(result.next()){ Stringtitle=result.getString("newstitle"); Stringauthor=result.getString("newsauthor"); Stringcontent=result.getString("newscontent"); Stringurl=result.getString("newsurl"); Stringdate=result.getString("newsdate"); StringmTitle=title.replace(keyWord,"<fontcolor=\"red\">"+keyWord+"</font>"); StringmContent=getTagContent(content,keyWord); if("".equals(author)||null==author||"null".equals(author)){ author="不詳"; } if("".equals(date)||null==date||"null".equals(date)){ date="不詳"; } System.out.println("content:::"+mContent); System.out.println("titile:"+title); NewsBeanbean=newNewsBean(); bean.setNewsTitle(mTitle); bean.setNewsAuthor(author); bean.setNewsContent(mContent); bean.setNewsURL(url); bean.setNewsDate(date); list.add(bean); } result.close(); } }catch(Exceptione1){ e1.printStackTrace(); }finally{ if(db!=null)db.all_close(); if(result!=null){ try{ result.close(); }catch(SQLExceptione){ e.printStackTrace(); } } } returnlist; }(三)數(shù)據(jù)訪問層的實現(xiàn)數(shù)據(jù)訪問層是與數(shù)據(jù)庫交互的層面.主要的作用是對數(shù)據(jù)的持久化操作,增強系統(tǒng)的可移植性,隱藏數(shù)據(jù)訪問細(xì)節(jié).在系統(tǒng)實現(xiàn)過程中,核心業(yè)務(wù)主要通過WebService層來實現(xiàn),Web層將用戶請求發(fā)給WebService層,WebService層進(jìn)行業(yè)務(wù)處理,并通過數(shù)據(jù)訪問層與后臺數(shù)據(jù)庫相交換,將數(shù)據(jù)結(jié)果發(fā)給Web層。數(shù)據(jù)訪問層實現(xiàn)的主要方法是JDBC技術(shù)。數(shù)據(jù)庫是用MySQL數(shù)據(jù)庫作為容器。實現(xiàn)原理如圖。圖4.3數(shù)據(jù)訪問實現(xiàn)原理圖連接數(shù)據(jù)庫代碼如下:publicstaticConnectionPoolGetPoolInstance(){ if(poolInstance==null){ poolInstance=newConnectionPool( "com.mysql.jdbc.Driver", "jdbc:mysql://localhost:3306/news_db", "root","root"); try{ poolInstance.createPool(); }catch(Exceptione){ e.printStackTrace(); } } returnpoolInstance; }執(zhí)行查詢數(shù)據(jù)操作代碼如下:publicResultSetexecuteQuery(Stringsql)throwsException{ try{ /* *Class.forName("xool.ProxoolDriver");con= *DriverManager.getConnection("proxool.xml-test"); */ conn=connPool.getConnection(); stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); rs=stmt.executeQuery(sql); }catch(SQLExceptione){ throwe; } //catch(NamingExceptione){throwe;} returnrs; }執(zhí)行更新數(shù)據(jù)庫操作代碼如下:publicintexecuteUpdate(Stringsql)throwsException{ //stmt=null; //rs=null; intresult=0; try{ conn=connPool.getConnection(); stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); result=stmt.executeUpdate(sql); }catch(SQLExceptionex){ System.err.println("執(zhí)行SQL語句出錯:"+ex.getMessage()); } returnresult; }五、系統(tǒng)測試(一)系統(tǒng)測試的必要性隨著信息技術(shù)的飛速發(fā)展,軟件產(chǎn)品已深入到社會生活的各個領(lǐng)域,軟件產(chǎn)品的質(zhì)量自然成為人們關(guān)注的焦點。作為商品的產(chǎn)品,都需要經(jīng)過嚴(yán)格的質(zhì)量測試,軟件產(chǎn)品也不能例外。軟件測試是發(fā)現(xiàn)軟件中錯誤和缺陷的重要手段,并且實踐證明,軟件中存在缺陷所造成的損失將遠(yuǎn)遠(yuǎn)高于測試的費用,并可能產(chǎn)生其它責(zé)任風(fēng)險和連鎖損失。在一些特殊領(lǐng)域(如航空、國防等),如果使用未經(jīng)全面測試的軟件,還可能造成災(zāi)難性后果。1.單元測試在軟件系統(tǒng)中,每個模塊完成一個清晰定義的子功能并且他和同級的其他模塊的功能之間是相對獨立的。因此,把每個模塊作為一個單獨的實體進(jìn)行測試來發(fā)現(xiàn)錯誤。通常單元測試和編碼屬于軟件工程的同一個階段。在編寫出源程序代碼并通過了編譯程序的語法檢查之后,可以應(yīng)用人工測試和計算機測試兩種類型的測試,完成單元測試工作。它主要檢查邏輯設(shè)計錯誤和編碼錯誤。這一步由本人在程序編譯通過后,通過實際運行該模塊來進(jìn)行測試。測試結(jié)果達(dá)到預(yù)定方案要求。2.集成測試集成測試是測試和組裝軟件的系統(tǒng)化技術(shù)。把模塊組裝起來同時進(jìn)行測試,主要目標(biāo)是測試模塊間的協(xié)調(diào)和通信,著重測試模塊間的接口。本系統(tǒng)采用漸增式測試方法,將下一個要測試的模塊同已經(jīng)測試好的那些模塊結(jié)合起來進(jìn)行測試。這一步在本系統(tǒng)各模塊完成連接后由本人進(jìn)行運行測試,接口通信良好,系統(tǒng)運行正常。3.驗收測試驗收測試是將系統(tǒng)作為一個實體進(jìn)行測試,它是測試工作的最后一步。驗收測試是在用戶的積極參與下進(jìn)行的,讓用戶使用系統(tǒng)來測試系統(tǒng)是否滿足用戶的需要,最終提出意見,為下一步改進(jìn)提供參考信息。這一步在系統(tǒng)完成后,根據(jù)當(dāng)初需求分析調(diào)查結(jié)果,由本人設(shè)計數(shù)據(jù)在不同條件下對系統(tǒng)進(jìn)行實際數(shù)據(jù)測試。測試結(jié)果達(dá)到預(yù)定方案中的需求分析要求。(二)采集數(shù)據(jù)模塊的測試測試步驟:首先運行數(shù)據(jù)采集程序,在url輸入框中,輸入,在設(shè)定定時抓取間隔輸入框中輸入500。然后點擊開始按鈕,效果如圖圖5.1測試界面采集結(jié)果是在數(shù)據(jù)庫中的news表中插入了1157條記錄,說明成功從1164條url鏈接中采集了1157條數(shù)據(jù)。成功率為99%。結(jié)果基本讓人滿意。查看數(shù)據(jù)庫中的數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)已經(jīng)成功插入。大部分?jǐn)?shù)據(jù)采集成功。圖5.2數(shù)據(jù)采集界面(三)搜索引擎的測試測試步驟:在IE瀏覽器中的地址欄輸入http://localhost:8080/SerchEngine/,跳轉(zhuǎn)如下頁面。圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論