




已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
沈陽理工大學(xué)學(xué)士學(xué)位論文摘 要隨著互聯(lián)網(wǎng)的迅速發(fā)展,網(wǎng)絡(luò)規(guī)模不斷擴(kuò)大,信息儲(chǔ)量急劇增長(zhǎng),搜索引擎技術(shù)越來越得到廣泛地使用。本文通過對(duì)各種通用搜索引擎的關(guān)鍵技術(shù)進(jìn)行研究,完成了對(duì)通用WEB搜索引擎的設(shè)計(jì)與實(shí)現(xiàn)。搜索引擎系統(tǒng)包括3個(gè)功能模塊:網(wǎng)頁獲取模塊,數(shù)據(jù)存儲(chǔ)模塊和檢索模塊。本人在課題組中主要承擔(dān)工作有:系統(tǒng)整體設(shè)計(jì)、數(shù)據(jù)庫的設(shè)計(jì)實(shí)現(xiàn)以及中文分詞系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)。本系統(tǒng)的整體設(shè)計(jì)突出操作簡(jiǎn)便、功能強(qiáng)大、人性化設(shè)置、并行處理可移植等特點(diǎn),其中中文分詞,各模塊的存儲(chǔ)流程是系統(tǒng)的設(shè)計(jì)亮點(diǎn)。本文中對(duì)搜索引擎的各種技術(shù)算法進(jìn)行了介紹,而且根據(jù)系統(tǒng)的需要進(jìn)行了各功能模塊的設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)的特點(diǎn)是:大容量存儲(chǔ)、高效檢索和簡(jiǎn)單查詢。索引數(shù)據(jù)庫以頁面信息表和詞庫表為核心,通過對(duì)詞創(chuàng)建索引以提高檢索效率;中文分詞系統(tǒng)采用JDK平臺(tái)開發(fā),實(shí)現(xiàn)對(duì)中英文句子的分割,使其分為單獨(dú)的詞或詞組。關(guān)鍵詞:搜索引擎;WEB搜索;中文分詞;索引數(shù)據(jù)庫;排序。AbstractWith the rapid development of the internet, the constant expansion of the network size, the run-up growing of the information storage, the technology of the search engine is becoming more and more popular.The article accomplish the design and realization of the general WEB search engine through the studying of all kinds of the general search engine. The search engine system includes three functions modules. They are Homepage gain module, data storage module and retrieval module. My main duty in this topic research is overall System design, database design realization, Chinese participle system design realization.The prominent point in this overall system is that operation is simple, the function is formidable, the human nature establishment, the parallel processing may transplant and so on, especially the Chinese participle and each memory operation module. The article does not only introduce all kinds of technical algorithm in the search engine, but design each function module according to the need of the system. The database design characteristic is: Large capacity memory, highly effective retrieval, simple inquiry. The index database takes the page information table and the word storehouse table as a core, enhancing the searches efficiency through establishing the words index. Chinese participle system uses the JDK platform exploitation, realization to the Chinese and English sentence division, causes it to divide into the independent word or the phrase.Keywords: WEB search; Chinese participle; Index database; Arranges目 錄1 緒論11.1 研究的背景及意義11.2 國內(nèi)外研究現(xiàn)狀及發(fā)展趨勢(shì)11.2.1 搜索引擎的發(fā)展歷史介紹11.2.2 當(dāng)今互聯(lián)網(wǎng)搜索引擎巨頭的發(fā)展?fàn)顩r21.3 本研究的內(nèi)容及研究方案32 搜索引擎相關(guān)技術(shù)52.1 JSpider軟件52.1.1 JSpider軟件介紹52.1.2 JSpider軟件工作原理52.2 Java、JSP和Android介紹62.2.1 Java介紹62.2.2 Android介紹72.3 SQL數(shù)據(jù)庫訪問技術(shù)82.3.1 傳統(tǒng)關(guān)系型數(shù)據(jù)庫MySQL92.3.2 NoSQL Sequoiadb數(shù)據(jù)庫102.4 JSP技術(shù)112.4.1 JSP語言介紹112.4.2 JSP優(yōu)勢(shì)122.5 WEB開發(fā)輕平臺(tái)-Tomcat簡(jiǎn)介123 系統(tǒng)分析143.1 搜索引擎說明143.1.1 搜索引擎描述143.1.2 搜索引擎開發(fā)背景143.2 開發(fā)任務(wù)143.2.1 搜索引擎的設(shè)計(jì)要求和目標(biāo)143.2.2 搜索引擎的設(shè)計(jì)原則153.3 用戶需求分析153.3.1 用戶使用搜索功能習(xí)慣153.3.2 用戶使用搜索功能用例分析163.4 搜索引擎功能需求分析173.4.1 搜索引擎支持客戶端類型173.4.2 搜索引擎基本功能173.4.2 數(shù)據(jù)庫數(shù)據(jù)存儲(chǔ)分析183.5 界面需求分析184 搜索引擎設(shè)計(jì)194.1 搜索引擎結(jié)構(gòu)設(shè)計(jì)194.2 數(shù)據(jù)庫設(shè)計(jì)204.2.1 數(shù)據(jù)庫設(shè)計(jì)的步驟204.2.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)214.2.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)234.2.4 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)234.3 數(shù)據(jù)存儲(chǔ)流程設(shè)計(jì)244.3.1 網(wǎng)絡(luò)機(jī)器人的基本結(jié)構(gòu)及工作原理254.3.2 從網(wǎng)絡(luò)機(jī)器人的角度對(duì)互聯(lián)網(wǎng)進(jìn)行劃分254.3.3 抓取策略264.4 搜索引擎流程設(shè)計(jì)284.4.1 搜索引擎總體流程設(shè)計(jì)284.4.2 檢驗(yàn)載入搜索頁面合法性294.4.3 搜索功能設(shè)計(jì)305 搜索引擎實(shí)現(xiàn)325.1 JavaBean實(shí)現(xiàn)說明325.1.1 數(shù)據(jù)庫連接類MysqlBean325.1.2 分詞處理類SpliteWord335.1.3 生成SQL類CreateSql335.1.4 創(chuàng)建ResultBean類CreateResult385.1.5 結(jié)果集類ResultBean395.2 調(diào)用JSpider實(shí)現(xiàn)數(shù)據(jù)收錄405.3 實(shí)現(xiàn)搜索頁面41結(jié) 論45致 謝46參考文獻(xiàn)47附錄A 英語原文48附錄B 英語譯文52IV沈陽理工大學(xué)學(xué)士學(xué)位論文1 緒論1.1 研究的背景及意義自上個(gè)世紀(jì)90年代以來隨著網(wǎng)絡(luò)化和信息數(shù)字化技術(shù)的發(fā)展,網(wǎng)絡(luò)上的信息量以幾何數(shù)量級(jí)遞增,人們已經(jīng)無法很輕易地在網(wǎng)絡(luò)上搜索到自己想要的信息,卻陷入了信息過剩的苦惱當(dāng)中。這時(shí),搜索引擎軟件應(yīng)運(yùn)而生。搜索引擎是指根據(jù)一定的策略、運(yùn)用特定的計(jì)算機(jī)程序搜集互聯(lián)網(wǎng)上的信息,在對(duì)信息進(jìn)行組織和處理后,并將處理后的信息顯示給用戶,是為用戶提供檢索服務(wù)的系統(tǒng)。從使用者的角度看,搜索引擎提供一個(gè)包含搜索框的頁面,在搜索框輸入詞語,通過瀏覽器提交給搜索引擎后,搜索引擎就會(huì)返回跟用戶輸入的內(nèi)容相關(guān)的信息列表。如果人們希望在互聯(lián)網(wǎng)上搜索一些資料,通過搜索引擎就可以快速地查找到你所需要的站點(diǎn)。移動(dòng)終端近幾年發(fā)展迅速,Android系統(tǒng)的手機(jī)占有率已經(jīng)不可同日而語,所以人們對(duì)Android移動(dòng)應(yīng)用的需求也越來越大,將搜索應(yīng)用和Android手機(jī)結(jié)合將會(huì)是一個(gè)互聯(lián)網(wǎng)發(fā)展的趨勢(shì)。1.2 國內(nèi)外研究現(xiàn)狀及發(fā)展趨勢(shì)1.2.1 搜索引擎的發(fā)展歷史介紹互聯(lián)網(wǎng)發(fā)展早期,以雅虎為代表的網(wǎng)站分類目錄查詢非常流行。網(wǎng)站分類目錄由人工整理維護(hù),精選互聯(lián)網(wǎng)上的優(yōu)秀網(wǎng)站,并簡(jiǎn)要描述,分類放置到不同目錄下。用戶查詢時(shí),通過一層層的點(diǎn)擊來查找自己想找的網(wǎng)站。也有人把這種基于目錄的檢索服務(wù)網(wǎng)站稱為搜索引擎,但從嚴(yán)格意義上講,它并不是搜索引擎。1990年,加拿大麥吉爾大學(xué)計(jì)算機(jī)學(xué)院的師生開發(fā)出Archie。當(dāng)時(shí),萬維網(wǎng)還沒有出現(xiàn),人們通過FTP來共享交流資源。Archie能定期搜集并分析FTP服務(wù)器上的文件名信息,提供查找分別在各個(gè)FTP主機(jī)中的文件。用戶必須輸入精確的文件名進(jìn)行搜索,Archie告訴用戶哪個(gè)FTP服務(wù)器能下載該文件。雖然Archie搜集的信息資源不是網(wǎng)頁,但和搜索引擎的基本工作方式是一樣的:自動(dòng)搜集信息資源、建立索引、提供檢索服務(wù)。所以,Archie被公認(rèn)為現(xiàn)代搜索引擎的鼻祖。自從搜索引擎問世后,搜索引擎技術(shù)飛速發(fā)展。1994年4月,斯坦福大學(xué)的兩名博士生,美籍華人楊致遠(yuǎn)和David Filo共同創(chuàng)辦了Yahoo!隨著訪問量和收錄鏈接數(shù)的增長(zhǎng),Yahoo目錄開始支持簡(jiǎn)單的數(shù)據(jù)庫搜索。因?yàn)閅ahoo!的數(shù)據(jù)是手工輸入的,所以不能真正被歸為搜索引擎,事實(shí)上只是一個(gè)可搜索的目錄。Yahoo!中收錄的網(wǎng)站,因?yàn)槎几接泻?jiǎn)介信息,所以搜索效率明顯提高。1996年,二名斯坦福大學(xué)的理學(xué)博士生拉里佩奇和謝爾蓋布林開發(fā)了一個(gè)對(duì)網(wǎng)站之間的關(guān)系做精確分析為基礎(chǔ)的搜尋引擎,他的使用結(jié)果上勝于當(dāng)時(shí)使用的基本搜索技術(shù)。Google搜索引擎以它簡(jiǎn)單,干凈的頁面設(shè)計(jì)和最有關(guān)的搜尋結(jié)果贏得了使用者的擁戴。從此,網(wǎng)上沖浪者在互聯(lián)網(wǎng)上搜索需要信息的難度大大降低,互聯(lián)網(wǎng)得到了極大發(fā)展。1.2.2 當(dāng)今互聯(lián)網(wǎng)搜索引擎巨頭的發(fā)展?fàn)顩r搜索引擎經(jīng)過幾年的發(fā)展和摸索,越來越貼近人們的需求,搜索引擎的技術(shù)也得到了很大的發(fā)展。搜索引擎的最新技術(shù)發(fā)展包括以下幾個(gè)方面:提高搜索引擎對(duì)用戶檢索提問的理解為了提高搜索引擎對(duì)用戶檢索提問的理解,就必須有一個(gè)好的檢索提問語言,為了克服關(guān)鍵詞檢索和目錄查詢的缺點(diǎn),已經(jīng)出現(xiàn)了自然語言智能答詢。用戶可以輸入簡(jiǎn)單的疑問句,比如“how can kill virus of computer?”。搜索引擎在對(duì)提問進(jìn)行結(jié)構(gòu)和內(nèi)容的分析之后,或直接給出提問的答案,或引導(dǎo)用戶從幾個(gè)可選擇的問題中進(jìn)行再選擇。自然語言的優(yōu)勢(shì)在于,一是使網(wǎng)絡(luò)交流更加人性化,二是使查詢變得更加方便、直接、有效。就以上面的例子來講,如果用關(guān)鍵詞查詢,多半人會(huì)用“virus”這個(gè)詞來檢索,結(jié)果中必然會(huì)包括各類病毒的介紹、病毒是怎樣產(chǎn)生的等等許多無效信息,而用“how can kill virus of computer?”,搜索引擎會(huì)將怎樣殺病毒的信息提供給用戶,提高了檢索效率。對(duì)檢索結(jié)果進(jìn)行處理:1、基于鏈接評(píng)價(jià)的搜索引擎基于鏈接評(píng)價(jià)的搜索引擎的優(yōu)秀代表是Google,它獨(dú)創(chuàng)的“鏈接評(píng)價(jià)體系”是基于這樣一種認(rèn)識(shí),一個(gè)網(wǎng)頁的重要性取決于它被其它網(wǎng)頁鏈接的數(shù)量,特別是一些已經(jīng)被認(rèn)定是“重要”的網(wǎng)頁的鏈接數(shù)量。這種評(píng)價(jià)體制與科技引文索引的思路非常相似,但是由于互聯(lián)網(wǎng)是在一個(gè)商業(yè)化的環(huán)境中發(fā)展起來的,一個(gè)網(wǎng)站的被鏈接數(shù)量還與它的商業(yè)推廣有著密切的聯(lián)系,因此這種評(píng)價(jià)體制在某種程度上缺乏客觀性。2、基于訪問大眾性的搜索引擎基于訪問大眾性的搜索引擎的代表是direct hit,它的基本理念是多數(shù)人選擇訪問的網(wǎng)站就是最重要的網(wǎng)站。根據(jù)以前成千上萬的網(wǎng)絡(luò)用戶在檢索結(jié)果中實(shí)際所挑選并訪問的網(wǎng)站和他們?cè)谶@些網(wǎng)站上花費(fèi)的時(shí)間來統(tǒng)計(jì)確定有關(guān)網(wǎng)站的重要性排名,并以此來確定哪些網(wǎng)站最符合用戶的檢索要求。因此具有典型的趨眾性特點(diǎn)。這種評(píng)價(jià)體制與基于鏈接評(píng)價(jià)的搜索引擎有著同樣的缺點(diǎn)。3、去掉檢索結(jié)果中附加的多余信息有調(diào)查指出,過多的附加信息加重了用戶的信息負(fù)擔(dān),為了去掉這些過多的附加信息,可以采用用戶定制、內(nèi)容過濾等檢索技術(shù)。確定搜索引擎信息搜集范圍網(wǎng)上的信息浩如煙海,網(wǎng)絡(luò)資源以十倍速的增長(zhǎng),一個(gè)搜索引擎很難收集全所有主題的網(wǎng)絡(luò)信息,即使信息主題收集得比較全面,由于主題范圍太寬,很難將各主題都做得精確而又專業(yè),使得檢索結(jié)果垃圾太多。這樣以來,垂直主題的搜索引擎以其高度的目標(biāo)化和專業(yè)化在各類搜索引擎中占據(jù)了一系席之地,比如象股票、天氣、新聞等類的搜索引擎,具有很高的針對(duì)性,用戶對(duì)查詢結(jié)果的滿意度較高。作者認(rèn)為,垂直主題有著極大的發(fā)展空間。1.3 本研究的內(nèi)容及研究方案課題完成基于Android客戶端的WEB搜索引擎特點(diǎn)和設(shè)計(jì)方法研究,完成互聯(lián)網(wǎng)信息錄入和關(guān)鍵字分詞、搜索。課題內(nèi)容如下:1、搜索器:其功能是在互聯(lián)網(wǎng)中漫游,發(fā)現(xiàn)和搜集信息。2、索引器:其功能是理解搜索器所搜索到的信息,從中抽取出索引項(xiàng),用于表示文檔以及生成文檔庫的索引表。3、檢索器:其功能是根據(jù)用戶的查詢?cè)谒饕龓熘锌焖贆z索文檔,進(jìn)行相關(guān)度評(píng)價(jià),對(duì)將要輸出的結(jié)果排序,并能按用戶的查詢需求合理反饋信息。4、用戶接口:其作用是接納用戶查詢、顯示查詢結(jié)果、提供個(gè)性化查詢項(xiàng)。5、基于Android客戶端的WEB瀏覽。課題研究方案:對(duì)于課題理論研究部分,通過查找相關(guān)資料,進(jìn)行邏輯推演,得出結(jié)論。對(duì)于搜索引擎設(shè)計(jì)和實(shí)現(xiàn)部分,要參考現(xiàn)今主流的技術(shù)、關(guān)鍵字分詞算法,給出詳細(xì)的設(shè)計(jì)方案并實(shí)現(xiàn)。搜索引擎采用Java、JSP、Tomcat開發(fā)環(huán)境,數(shù)據(jù)存儲(chǔ)采用MySQL和Sequoiadb數(shù)據(jù)庫。2 搜索引擎相關(guān)技術(shù)2.1 JSpider軟件2.1.1 JSpider軟件介紹JSpider是一個(gè)純Java編寫的高度可配置和可定制的網(wǎng)絡(luò)蜘蛛引擎。你可以通過JSpider檢查提供的網(wǎng)站是否出錯(cuò),可以對(duì)提供的網(wǎng)站內(nèi)部的鏈接進(jìn)行檢查,分析提供站點(diǎn)的結(jié)構(gòu),也可以通過JSpider下載一個(gè)完整的網(wǎng)站。Jspider的擴(kuò)展性非常強(qiáng)大,你也可以自己定制一個(gè)JSpider插件來完成指定的功能。2.1.2 JSpider軟件工作原理如果把互聯(lián)網(wǎng)比喻成為一個(gè)蜘蛛網(wǎng),那么,類似Jspider的軟件就像一只蜘蛛一樣,在互聯(lián)網(wǎng)上孜孜不倦地遍歷互聯(lián)網(wǎng)的上各個(gè)站點(diǎn),然后將其指定內(nèi)容存儲(chǔ)到數(shù)據(jù)庫當(dāng)中。JSpider軟件又被叫作網(wǎng)絡(luò)爬蟲。網(wǎng)絡(luò)爬蟲是一個(gè)自動(dòng)提取網(wǎng)頁的程序,它為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成。傳統(tǒng)爬蟲從一個(gè)或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件,流程如圖2.1所示。聚焦爬蟲的工作流程較為復(fù)雜,需要根據(jù)一定的網(wǎng)頁分析算法過濾與主題無關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊(duì)列。然后,它將根據(jù)一定的搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng)頁URL,并重復(fù)上述過程,直到遍歷完所有鏈接時(shí)停止。另外,所有被爬蟲抓取的網(wǎng)頁將會(huì)被存儲(chǔ)到數(shù)據(jù)庫當(dāng)中,進(jìn)行一定的分析、過濾,并建立索引,以便之后的查詢和檢索。圖2.1 JSpider工作原理2.2 Java、JSP和Android介紹2.2.1 Java介紹Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺(tái)(即JavaSE, JavaEE, JavaME)的總稱。Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊前景。Java由四方面組成:Java編程語言、Java類文件格式、Java虛擬機(jī)和Java應(yīng)用程序接口(Java API)。平臺(tái)Java平臺(tái)由Java虛擬機(jī)(Java Virtual Machine,簡(jiǎn)稱JVM)和Java 應(yīng)用編程接口(Application Programming Interface,簡(jiǎn)稱API)構(gòu)成。Java應(yīng)用編程接口為Java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)Java平臺(tái)之后,Java應(yīng)用程序就可運(yùn)行。Java平臺(tái)已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。與傳統(tǒng)程序不同,Sun 公司在推出 Java 之際就將其作為一種開放的技術(shù)。全球數(shù)以萬計(jì)的 Java 開發(fā)公司被要求所設(shè)計(jì)的 Java 軟件必須相互兼容?!癑ava 語言靠群體的力量而非公司的力量”是Sun公司的口號(hào)之一,并獲得了廣大軟件開發(fā)商的認(rèn)同。這與微軟公司所倡導(dǎo)的注重精英和封閉式的模式完全不同。Sun 公司對(duì) Java 編程語言的解釋是:Java 編程語言是個(gè)簡(jiǎn)單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無關(guān)、可移植、高性能、多線程和動(dòng)態(tài)的語言。Java 平臺(tái)是基于 Java 語言的平臺(tái)。這樣的平臺(tái)非常流行。因此微軟公司推出了與之競(jìng)爭(zhēng)的.NET平臺(tái)以及模仿Java的C#語言。2.2.2 Android介紹Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機(jī)。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運(yùn)商組建開放手機(jī)聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開源許可證的授權(quán)方式,發(fā)布了Android的源代碼。第一部Android智能手機(jī)發(fā)布于2008年10月。Android逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。2011年第一季度,Android在全球的市場(chǎng)份額首次超過塞班系統(tǒng),躍居全球第一。Android系統(tǒng)架構(gòu)和氣操作系統(tǒng)一樣,采用了分層的架構(gòu)。從圖2.2看,Android分為四個(gè)蹭,從高層到底層分別是應(yīng)用程序曾、應(yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層。圖2.2 Android分層Android應(yīng)用程序框架,開發(fā)人員可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡(jiǎn)化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。Android 包含一些C/C+庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過 Android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。2.3 SQL數(shù)據(jù)庫訪問技術(shù)開發(fā)一個(gè)成功的搜索引擎,數(shù)據(jù)庫扮演著一個(gè)重要的角色。從Jspider遍歷并下載網(wǎng)站開始,就要求數(shù)據(jù)庫必須能承受大數(shù)據(jù)數(shù)量、長(zhǎng)時(shí)間數(shù)據(jù)插入,保證快速查找指定關(guān)鍵字段和保持?jǐn)?shù)據(jù)庫長(zhǎng)期穩(wěn)定性。數(shù)據(jù)庫是搜索引擎的核心部分之一,涉及到搜索數(shù)據(jù)的完整性和實(shí)時(shí)性。搜索引擎需要一種高效、安全的存取方式訪問數(shù)據(jù)庫里的內(nèi)容,本搜索引擎采用傳統(tǒng)數(shù)據(jù)庫Mysql和新型Nosql數(shù)據(jù)庫Sequoiadb做為解決方案,使用標(biāo)準(zhǔn)的SQL(結(jié)構(gòu)化查詢語言)和Java提供的接口驅(qū)動(dòng)的方式存取數(shù)據(jù)庫。2.3.1 傳統(tǒng)關(guān)系型數(shù)據(jù)庫MySQL1、MySQL簡(jiǎn)介:MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL的SQL語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫2、關(guān)系型數(shù)據(jù)庫介紹在關(guān)系型數(shù)據(jù)庫中數(shù)據(jù)以行和列的形式存儲(chǔ),以便于用戶理解,這一系列的行和列被稱為表,一組表便組成了數(shù)據(jù)庫。在關(guān)系數(shù)據(jù)庫中:各數(shù)據(jù)項(xiàng)之間用關(guān)系來組織,關(guān)系是表之間的一種連接,通過關(guān)系,我們可以更靈活地表示和操縱數(shù)據(jù);另外,用戶可以非常方便的用查詢來檢索數(shù)據(jù)庫中的數(shù)據(jù),一個(gè)Query是一個(gè)用于指定數(shù)據(jù)庫中行和列的SELECT語句。關(guān)系數(shù)據(jù)庫是支持關(guān)系模型的數(shù)據(jù)庫系統(tǒng)。關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和完整性約束三部分組成。關(guān)系操作分為關(guān)系代數(shù)、關(guān)系演算、具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言(SQL語言)。完整性約束提供了豐富的完整性:實(shí)體完整性、參照完整性和用戶定義的完整性。實(shí)體完整性規(guī)則:若屬性A是基本關(guān)系R的屬性,則屬性A不能取空值。參照完整性:若屬性(屬性組)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Key相對(duì)應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必須為:空、.或者取空值(F的每個(gè)屬性值均為空值);關(guān)系代數(shù)的運(yùn)算按運(yùn)算符的不同主要分為傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算兩類。集合運(yùn)算有二目運(yùn)算,包括并、交、差、廣義笛卡爾積四種運(yùn)算。專門的關(guān)系運(yùn)算包括選擇、投影、連接、除等。根據(jù)關(guān)系系統(tǒng)支持關(guān)系程度不同,可以把關(guān)系系統(tǒng)分為四類:表式系統(tǒng)、(最?。╆P(guān)系系統(tǒng)、關(guān)系完備系統(tǒng)、全關(guān)系系統(tǒng)。表式系統(tǒng):只支持關(guān)系數(shù)據(jù)結(jié)構(gòu)(即表),不支持集合級(jí)的操作。(最?。╆P(guān)系系統(tǒng):支持關(guān)系數(shù)據(jù)結(jié)構(gòu),它支持關(guān)系數(shù)據(jù)結(jié)構(gòu)和選擇、投影、連接三種關(guān)系操作。關(guān)系上完備的系統(tǒng)這類系統(tǒng)支持關(guān)系數(shù)據(jù)結(jié)構(gòu)和所有的關(guān)系代數(shù)操作(功能上與關(guān)系代數(shù)等價(jià))。2.3.2 NoSQL Sequoiadb數(shù)據(jù)庫1、Sequoiadb簡(jiǎn)介Sequoiadb數(shù)據(jù)庫是由巨杉公司自主研發(fā)的一款具有完全自主知識(shí)產(chǎn)權(quán)的大數(shù)據(jù)數(shù)據(jù)庫內(nèi)核。Sequoiadb數(shù)據(jù)庫是一款非關(guān)系型型數(shù)據(jù)庫,對(duì)比傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,Sequoiadb數(shù)據(jù)庫能更好地支持分布式數(shù)據(jù)存儲(chǔ)、高并發(fā)性數(shù)據(jù)操作,而且未來對(duì)于數(shù)據(jù)庫的擴(kuò)容成本也較傳統(tǒng)數(shù)據(jù)庫低。2、NoSQL數(shù)據(jù)庫介紹NoSQL = Not Only SQL ,意即“不僅僅是SQL”,是一項(xiàng)全新的數(shù)據(jù)庫革命性運(yùn)動(dòng),早期就有人提出,發(fā)展至2009年趨勢(shì)越發(fā)高漲。NoSQL的擁護(hù)者們提倡運(yùn)用非關(guān)系型的數(shù)據(jù)存儲(chǔ),相對(duì)于鋪天蓋地的關(guān)系型數(shù)據(jù)庫運(yùn)用,這一概念無疑是一種全新的思維的注入。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,非關(guān)系型的數(shù)據(jù)庫成了一個(gè)極其熱門的新領(lǐng)域,非關(guān)系數(shù)據(jù)庫產(chǎn)品的發(fā)展非常迅速。NoSQL數(shù)據(jù)庫特點(diǎn):1) 它們可以處理超大量的數(shù)據(jù)。2) 它們運(yùn)行在便宜的PC服務(wù)器集群上,PC集群擴(kuò)充起來非常方便并且成本很低,避免了“sharding”操作的復(fù)雜性和成本。3) 它們擊碎了性能瓶頸,NoSQL的支持者稱,通過NoSQL架構(gòu)可以省去將Web或Java應(yīng)用和數(shù)據(jù)轉(zhuǎn)換成SQL友好格式的時(shí)間,執(zhí)行速度變得更快。4) 沒有過多的操作,雖然NoSQL的支持者也承認(rèn)關(guān)系數(shù)據(jù)庫提供了無可比擬的功能集合,而且在數(shù)據(jù)完整性上也發(fā)揮絕對(duì)穩(wěn)定,他們同時(shí)也表示,企業(yè)的具體需求可能沒有那么多。3、NoSQL數(shù)據(jù)庫比較關(guān)系型數(shù)據(jù)庫優(yōu)點(diǎn):(1)易擴(kuò)展NoSQL數(shù)據(jù)庫種類繁多,但是一個(gè)共同的特點(diǎn)都是去掉關(guān)系數(shù)據(jù)庫的關(guān)系型特性。數(shù)據(jù)之間無關(guān)系,這樣就非常容易擴(kuò)展。也無形之間,在架構(gòu)的層面上帶來了可擴(kuò)展的能力。(2)大數(shù)據(jù)量,高性能NoSQL數(shù)據(jù)庫都具有非常高的讀寫性能,尤其在大數(shù)據(jù)量下,同樣表現(xiàn)優(yōu)秀。這得益于它的無關(guān)系性,數(shù)據(jù)庫的結(jié)構(gòu)簡(jiǎn)單。一般MySQL使用 Query Cache,每次表的更新Cache就失效,是一種大粒度的Cache,在針對(duì)web2.0的交互頻繁的應(yīng)用,Cache性能不高。而NoSQL的 Cache是記錄級(jí)的,是一種細(xì)粒度的Cache,所以NoSQL在這個(gè)層面上來說就要性能高很多了。(3)靈活的數(shù)據(jù)模型NoSQL無需事先為要存儲(chǔ)的數(shù)據(jù)建立字段,隨時(shí)可以存儲(chǔ)自定義的數(shù)據(jù)格式。而在關(guān)系數(shù)據(jù)庫里,增刪字段是一件非常麻煩的事情。如果是非常大數(shù)據(jù)量的表,增加字段簡(jiǎn)直就是一個(gè)噩夢(mèng)。這點(diǎn)在大數(shù)據(jù)量的web2.0時(shí)代尤其明顯。(4)高可用NoSQL在不太影響性能的情況,就可以方便的實(shí)現(xiàn)高可用的架構(gòu)。比如Cassandra,HBase模型,通過復(fù)制模型也能實(shí)現(xiàn)高可用。2.4 JSP技術(shù)2.4.1 JSP語言介紹JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。 用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。JSP其根本是一個(gè)簡(jiǎn)化的Serlet設(shè)計(jì),他實(shí)現(xiàn)了Html語法中的java擴(kuò)張(以 形式)。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶端。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)的顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 JSP(JavaServer Pages)是一種動(dòng)態(tài)頁面技術(shù),它的主要目的是將表示邏輯從Servlet中分離出來。JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。2.4.2 JSP優(yōu)勢(shì)1、一次編寫,到處運(yùn)行。除了系統(tǒng)之外,代碼不用做任何更改。2、系統(tǒng)的多平臺(tái)支持。基本上可以在所有平臺(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP的局限性JSP的優(yōu)勢(shì)是顯而易見的。3、強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。4、多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。5、支持服務(wù)器端組件。web應(yīng)用需要強(qiáng)大的服務(wù)器端組件來支持,開發(fā)人員需要利用其他工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的組件供web頁面調(diào)用,以增強(qiáng)系統(tǒng)性能。JSP可以使用成熟的JAVA BEANS 組件來實(shí)現(xiàn)復(fù)雜商務(wù)功能。2.5 WEB開發(fā)輕平臺(tái)-Tomcat簡(jiǎn)介Tomcat是一個(gè)免費(fèi)的開源的Serlvet容器,它是Apache基金會(huì)的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache,Sun和其它一些公司及個(gè)人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)范總能在Tomcat中得到體現(xiàn)。與傳統(tǒng)的桌面應(yīng)用程序不同,Tomcat中的應(yīng)用程序是一個(gè)WAR(Web Archive)文件。WAR是Sun提出的一種Web應(yīng)用程序格式,與JAR類似,也是許多文件的一個(gè)壓縮包。這個(gè)包中的文件按一定目錄結(jié)構(gòu)來組織:通常其根目錄下包含有Html和JSP文件或者包含這兩種文件的目錄,另外還會(huì)有一個(gè)WEB-INF目錄,這個(gè)目錄很重要。通常在WEB-INF目錄下有一個(gè)web.xml文件和一個(gè)classes目錄,web.xml是這個(gè)應(yīng)用的配置文件,而classes目錄下則包含編譯好的Servlet類和JSP或Servlet所依賴的其它類(如JavaBean)。通常這些所依賴的類也可以打包成JAR放到WEB-INF下的lib目錄下,當(dāng)然也可以放到系統(tǒng)的CLASSPATH中,但那樣移植和管理起來不方便。 在Tomcat中,應(yīng)用程序的部署很簡(jiǎn)單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會(huì)自動(dòng)檢測(cè)到這個(gè)文件,并將其解壓。你在瀏覽器中訪問這個(gè)應(yīng)用的JSP時(shí),通常第一次會(huì)很慢,因?yàn)門omcat要將JSP轉(zhuǎn)化為Servlet文件,然后編譯。編譯以后,訪問將會(huì)很快。另外Tomcat也提供了一個(gè)應(yīng)用:manager,訪問這個(gè)應(yīng)用需要用戶名和密碼,用戶名和密碼存儲(chǔ)在一個(gè)xml文件中。通過這個(gè)應(yīng)用,輔助于Ftp,你可以在遠(yuǎn)程通過Web部署和撤銷應(yīng)用。當(dāng)然本地也可以。3 系統(tǒng)分析3.1 搜索引擎說明3.1.1 搜索引擎描述本研究開發(fā)的系統(tǒng)名為基于Android客戶端的搜索引擎開發(fā)實(shí)現(xiàn)。搜索引擎的開發(fā)環(huán)境為JDK1.6.0和Tomcat,利用Android瀏覽器插件實(shí)現(xiàn)WEB瀏覽,也可以通過傳統(tǒng)的桌面瀏覽器訪問搜索的始頁面。3.1.2 搜索引擎開發(fā)背景搜索引擎是一種用于幫助Internet用戶查詢信息的搜索工具,它以一定的策略在Internet中搜集、發(fā)現(xiàn)信息,對(duì)信息進(jìn)行理解、提取、組織和處理,并為用戶提供檢索服務(wù),從而起到信息導(dǎo)航的目的。在人類進(jìn)入網(wǎng)絡(luò)時(shí)代以前,各個(gè)行業(yè)普遍感覺信息匱乏的問題,這主要是由于缺乏信息交流的方式。Internet的出現(xiàn)在很大程度上解決了這一問題,但很多人仍感到缺乏他們所需要的信息。而與此同時(shí),相應(yīng)的信息在Internet上卻大量存在著。真正的問題出在人們?cè)谌绱舜蟮男畔⒑Q罄镫y以找到他們所需要的準(zhǔn)確信息。因此,搜索引擎便成為Internet發(fā)展的關(guān)鍵性條件。正如大海里蘊(yùn)藏了豐富的資源,但人們卻因?yàn)闆]有先進(jìn)的工具而無法獲得、利用這些資源。Internet作為一個(gè)信息的海洋,人們用瀏覽器挨個(gè)網(wǎng)頁尋找的方法將很難找到準(zhǔn)確的信息,而只能是浪費(fèi)大量的時(shí)間和網(wǎng)絡(luò)資源。搜索引擎將 Internet網(wǎng)中對(duì)使用者有用的信息提取出來,無異于從Internet中提煉真金。3.2 開發(fā)任務(wù)3.2.1 搜索引擎的設(shè)計(jì)要求和目標(biāo)開發(fā)一個(gè)優(yōu)秀的搜索引擎,要求數(shù)據(jù)實(shí)時(shí)更新,中文分詞結(jié)果符合用戶預(yù)期,搜索速度迅速,各個(gè)客戶端之間兼容性好。設(shè)計(jì)要導(dǎo)到如下目標(biāo):1、執(zhí)行速度快,對(duì)于數(shù)據(jù)庫里成千上萬條記錄,要求快速、準(zhǔn)確地查詢出用戶所希望的結(jié)果集,數(shù)據(jù)庫的穩(wěn)定性至關(guān)重要,設(shè)計(jì)一個(gè)良好的邏輯關(guān)系非常重要。2、安全、穩(wěn)定性高,對(duì)于不同的搜索內(nèi)容必須保證系統(tǒng)的穩(wěn)定。3、中文分詞符合詞意,對(duì)于一個(gè)中文搜索引擎,中文分詞是一個(gè)重要的設(shè)計(jì)環(huán)節(jié),由于中文的特殊性,使得中文搜索引擎在設(shè)計(jì)時(shí)必須考慮中文詞匯的有意義性,否則搜索結(jié)果會(huì)與用戶當(dāng)初設(shè)想的相差太遠(yuǎn)。4、數(shù)據(jù)記錄保持更新,搜索引擎里面的數(shù)據(jù)內(nèi)容必須在若干周期內(nèi)重新更新,保證搜索結(jié)果集的實(shí)時(shí)性。5、多客戶端訪問,開發(fā)客戶端過程中考慮各個(gè)客戶端之間的兼容性。6、操作簡(jiǎn)單、使用界面具有人性化,清晰明了。3.2.2 搜索引擎的設(shè)計(jì)原則為了開發(fā)一個(gè)搜索速度快、高性能的搜索引擎,需要遵循如下設(shè)計(jì)原則:1、數(shù)據(jù)庫設(shè)計(jì)原則,充分考慮系統(tǒng)的性能,較少數(shù)據(jù)冗余,充分考慮各實(shí)體的構(gòu)成和各字段的屬性,力求最優(yōu)設(shè)計(jì)。2、完整性、真實(shí)性、實(shí)時(shí)性原則,搜索引擎設(shè)計(jì)時(shí)保證數(shù)據(jù)的完整性、真實(shí)性、實(shí)時(shí)性,搜索的結(jié)果集必須為有效連接。3、簡(jiǎn)單性原則,系統(tǒng)程序要求在保證完整性原則的情況下從簡(jiǎn)設(shè)計(jì),系統(tǒng)必須易于使用,學(xué)習(xí)成本低。4、面向?qū)ο笤瓌t,系統(tǒng)設(shè)計(jì)符合面向?qū)ο笤O(shè)計(jì)原理,模塊化,易于實(shí)現(xiàn)和擴(kuò)展,維護(hù)成本低。5、界面友好,界面美觀、大氣、易用。3.3 用戶需求分析3.3.1 用戶使用搜索功能習(xí)慣用戶在使用搜索引擎時(shí),主要原因是在生活中遇到不明白的事物,急需在互聯(lián)網(wǎng)中查找他想要的答案。網(wǎng)上用戶使用搜索引擎時(shí)的習(xí)慣如圖3.1所示。圖3.1 用戶使用搜索引擎分析用戶使用搜索引擎的習(xí)慣分析:1) 用戶在生活中遇到問題;2) 用戶使用搜索引擎,在搜索框中輸入想要查找的關(guān)鍵字;3) 使用搜索功能,搜索引擎在后臺(tái)進(jìn)行數(shù)據(jù)處理,中文分詞分析,與數(shù)據(jù)庫進(jìn)行交互;4) 客戶端取得服務(wù)器返回的結(jié)果集,進(jìn)行排版顯示;5) 用戶查看搜索結(jié)果,點(diǎn)擊鏈接,查看網(wǎng)站的具體內(nèi)容。3.3.2 用戶使用搜索功能用例分析用戶在生活中使用搜索引擎方式如圖3.2所示。圖3.2 用戶使用搜索引擎用例用戶在生活中發(fā)現(xiàn)問題,使用桌面瀏覽器或者Android瀏覽器訪問搜索頁面,通過關(guān)鍵字在數(shù)據(jù)庫中查找對(duì)應(yīng)的信息。3.4 搜索引擎功能需求分析3.4.1 搜索引擎支持客戶端類型本搜索引擎是基于WEB瀏覽器開發(fā)的,支持桌面版本的所有瀏覽器和Android客戶端的瀏覽器使用。3.4.2 搜索引擎基本功能本搜索引擎通過WEB瀏覽器端輸入要搜索的關(guān)鍵字,引擎進(jìn)行中文分詞、關(guān)鍵字處理并送進(jìn)數(shù)據(jù)庫進(jìn)行操作,然后用戶獲取到需要搜索的結(jié)果集。通過對(duì)引擎的目標(biāo)確定和用例分析,可以全面準(zhǔn)確地把握引擎的功能需求。這套基于WEB瀏覽器的搜索引擎可以方便用戶快速地在Internet上查找資源,免除由于Internet資源浩瀚而無法快速、準(zhǔn)確地查找想要的站點(diǎn)。由于本引擎設(shè)計(jì)時(shí)已經(jīng)考慮到跨平臺(tái)的兼容性問題,所以用戶無需擔(dān)心由于不同客戶端而造成引擎無法正常工作、顯示問題。引擎具體功能清單如下:1、實(shí)現(xiàn)跨平臺(tái),引擎在設(shè)計(jì)之初已經(jīng)考慮到跨平臺(tái)的兼容性,所以對(duì)于桌面的瀏覽器和Android瀏覽器可以完美訪問搜索頁。2、中文分詞,可以對(duì)一行長(zhǎng)中文句子進(jìn)行分詞,分成若干中文短語,再送進(jìn)數(shù)據(jù)庫進(jìn)行搜索,從而提高搜索的準(zhǔn)確性,同時(shí)符合用戶日常輸入習(xí)慣。3、結(jié)果集分頁顯示,對(duì)搜索返回的結(jié)果集進(jìn)行分頁顯示,方便用戶查看各個(gè)搜索結(jié)果。4、數(shù)據(jù)庫信息實(shí)時(shí)更新,定期對(duì)數(shù)據(jù)庫中的信息進(jìn)行更新處理,保證搜索結(jié)果的實(shí)時(shí)性。3.4.2 數(shù)據(jù)庫數(shù)據(jù)存儲(chǔ)分析搜索引擎搜索的基礎(chǔ)數(shù)據(jù)全部存儲(chǔ)在數(shù)據(jù)庫當(dāng)中,所以設(shè)計(jì)良好的數(shù)據(jù)表結(jié)構(gòu)也是優(yōu)秀搜索引擎的關(guān)鍵。數(shù)據(jù)庫的主要實(shí)體有:1、鏈接詳細(xì)信息表,用于存儲(chǔ)當(dāng)前鏈接的標(biāo)題、簡(jiǎn)單說明、字符集和關(guān)鍵字;2、鏈接列表,用于存儲(chǔ)當(dāng)前鏈接當(dāng)中再指向其他的超鏈接列表;3、鏈接表,用于存儲(chǔ)當(dāng)前鏈接的具體訪問地址,存儲(chǔ)時(shí)間。3.5 界面需求分析軟件用戶界面目前已經(jīng)成為衡量軟件質(zhì)量的重要指標(biāo),友好的界面可以讓用戶輕松使用軟件搜索所需要的資源,用戶對(duì)軟件的好感可以很好的轉(zhuǎn)化為用戶對(duì)軟件的喜愛和依賴,在提高軟件的質(zhì)量同時(shí),也可以引導(dǎo)用戶高效地查找資源,特別是面對(duì)不熟悉電腦操作的中老年人群,簡(jiǎn)單的界面也是他們是否會(huì)選擇使用你的搜索引擎關(guān)鍵。所以在設(shè)計(jì)操作界面時(shí),開發(fā)者努力做到使用界面清晰明了,讓第一次使用的用戶可以輕易使用。本搜索引擎,用戶通過瀏覽器實(shí)現(xiàn)搜索功能,用戶操作界面就是網(wǎng)頁。為了使用戶擁有良好的使用體驗(yàn),要求網(wǎng)頁設(shè)計(jì)到達(dá)以下要求。1、頁面布局規(guī)整,按鈕設(shè)計(jì)應(yīng)該大氣、顯眼。2、頁面背景美觀、柔和。3、頁面功能布置有條理,清晰引導(dǎo)用戶使用。4 搜索引擎設(shè)計(jì)4.1 搜索引擎結(jié)構(gòu)設(shè)計(jì)根據(jù)需求分析,我們可以知道用戶在使用搜索功能時(shí),客戶端一般是桌面瀏覽器或者移動(dòng)瀏覽器,根據(jù)需求分析,可以設(shè)計(jì)出兼容多種客戶端平臺(tái)的搜索引擎結(jié)構(gòu),如圖4.1所示。圖4.1 搜索引擎使用設(shè)計(jì)如圖4.1中的設(shè)備功能說明:1、服務(wù)器:安裝Windows 7操作系統(tǒng)、Tomcat程序、配置JDK環(huán)境;2、數(shù)據(jù)庫:MySQL數(shù)據(jù)庫、Sequoiadb數(shù)據(jù)庫;3、終端設(shè)備:傳統(tǒng)桌面瀏覽器、移動(dòng)瀏覽器。4.2 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫是搜索引擎的核心部分之一。搜索引擎的主要工作原理,當(dāng)用戶通過客戶端輸入搜索關(guān)鍵字后,送入引擎中進(jìn)行分詞工作,然后將要搜索命令傳送到數(shù)據(jù)庫進(jìn)行查詢操作,最后將查詢結(jié)果返還到客戶端中顯示打印,所以數(shù)據(jù)庫的設(shè)計(jì)直接影響到搜索結(jié)果的返回。對(duì)于一個(gè)出色的搜索引擎,如何設(shè)計(jì)出一個(gè)高效、穩(wěn)定、安全的數(shù)據(jù)庫成為關(guān)鍵。4.2.1 數(shù)據(jù)庫設(shè)計(jì)的步驟數(shù)據(jù)庫設(shè)計(jì)一般經(jīng)過規(guī)劃、需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)五個(gè)步驟,下面分別介紹這五個(gè)步驟要完成的工作。1、 數(shù)據(jù)庫規(guī)劃,對(duì)于一個(gè)數(shù)據(jù)庫應(yīng)用項(xiàng)目,需要在規(guī)劃階段完成,系統(tǒng)調(diào)查、可行性分析和系統(tǒng)目標(biāo)確定等工作,項(xiàng)目實(shí)施作初步準(zhǔn)備。2、需求分析,確定數(shù)據(jù)庫的使用范圍,信息收集和處理需求,產(chǎn)生系統(tǒng)業(yè)務(wù)流程圖、系統(tǒng)關(guān)聯(lián)圖、以及數(shù)據(jù)流圖。3、概念結(jié)構(gòu)設(shè)計(jì),概念結(jié)構(gòu)設(shè)計(jì)的目標(biāo)是產(chǎn)生系統(tǒng)信息需求的數(shù)據(jù)庫概念結(jié)構(gòu),即概念模型,概念模型是獨(dú)立于計(jì)算機(jī)硬件結(jié)構(gòu)和數(shù)據(jù)庫管理系統(tǒng)的。數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)采用實(shí)體-聯(lián)系(E-R)模型設(shè)計(jì)方法,實(shí)體-聯(lián)系(E-R)模型設(shè)計(jì)方法可以直觀地描述概念模型。組成實(shí)體-聯(lián)系(E-R)模型的元素有實(shí)體、聯(lián)系和屬性,實(shí)體是指用戶工作環(huán)境中所涉及的事物,屬性是實(shí)體特性的描述,聯(lián)系表示實(shí)體之間的關(guān)系。圖4.2為E-R模型中各元素的表示方法。圖4.2 實(shí)體描述4、邏輯結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)就是將E-R圖轉(zhuǎn)換為數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型。對(duì)于關(guān)系數(shù)據(jù)庫,就是要轉(zhuǎn)換為關(guān)系模式,確定實(shí)體的碼即數(shù)據(jù)庫中的數(shù)據(jù)表以及其主鍵,確定實(shí)體聯(lián)系的類型,即將聯(lián)系轉(zhuǎn)換為一對(duì)一、一對(duì)多、多對(duì)多等類型。5、物理結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)包括存儲(chǔ)類型的選擇、屬性數(shù)據(jù)類型的確定、表的索引結(jié)構(gòu)的確定和數(shù)據(jù)庫存取路徑的確定,目前的主流數(shù)據(jù)庫管理系統(tǒng)提供易用的工具,幫助用戶完成數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)。在需求分析中已經(jīng)完成數(shù)據(jù)庫的規(guī)劃和需求分析,之后三個(gè)小節(jié)將給出系統(tǒng)數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì)。4.2.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)1、由數(shù)據(jù)庫需求分析可知,搜索引擎數(shù)據(jù)庫的實(shí)體包括鏈接詳細(xì)信息表、鏈接列表、鏈接表,實(shí)體之間關(guān)系如圖4.3所示。圖4.3 實(shí)體及實(shí)體之間關(guān)系E-R圖本搜索引擎對(duì)數(shù)據(jù)庫的使用,主要集中在關(guān)鍵的鏈接詳細(xì)信息表和鏈接表,因?yàn)楸舅阉饕嬷粚?duì)互聯(lián)網(wǎng)上各個(gè)站點(diǎn)的信息標(biāo)題進(jìn)行搜索,鏈接列表是記錄當(dāng)前鏈接中它自身重定向的若干鏈接信息。2、鏈接詳細(xì)信息實(shí)體E-R圖,如圖4.4所示。圖4.4 鏈接詳細(xì)信息E-R圖3、鏈接實(shí)體E-R圖,如圖4.5所示圖4.5 鏈接實(shí)體E-R圖4、鏈接列表實(shí)體E-R圖,如圖4.6所示圖4.6 鏈接列表實(shí)體E-R圖4.2.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)要將獨(dú)立于數(shù)據(jù)庫管理系統(tǒng)的概念模型轉(zhuǎn)換為適于數(shù)據(jù)庫系統(tǒng)邏輯結(jié)構(gòu),轉(zhuǎn)換后的邏輯結(jié)構(gòu)需合計(jì)算機(jī)處理信息的邏輯并能與數(shù)據(jù)庫系統(tǒng)的特性兼容。轉(zhuǎn)化過程中,每個(gè)實(shí)體都需要轉(zhuǎn)換為一個(gè)關(guān)系,每個(gè)關(guān)系的主碼必須不為空,對(duì)于二元聯(lián)系需要按照一對(duì)多、弱實(shí)體、一對(duì)一、多對(duì)多等聯(lián)系來定義外碼。根據(jù)數(shù)據(jù)庫實(shí)體E-R圖可以得到各實(shí)體的屬性:鏈接詳細(xì)信息:ID號(hào),字符集格式,標(biāo)題信息,關(guān)鍵字信息,簡(jiǎn)單描述。鏈接:ID號(hào),訪問地址,收錄信息。鏈接列表:ID號(hào),鏈接地址。將概念模型轉(zhuǎn)換為如下的關(guān)系模式:鏈接詳細(xì)信息(ID號(hào),字符集格式,標(biāo)題信息,關(guān)鍵字信息,簡(jiǎn)單描述),主碼為ID號(hào),外碼為鏈接的ID號(hào)。鏈接(ID號(hào),訪問地址,收錄信息),主碼為ID號(hào),外碼為鏈接詳細(xì)信息的ID號(hào)。鏈接列表(ID號(hào),鏈接地址),主碼為ID號(hào),外碼為鏈接詳細(xì)信息的ID號(hào)。聯(lián)系:聯(lián)系轉(zhuǎn)換為鏈接詳細(xì)信息與鏈接之間一對(duì)一關(guān)系,外碼為鏈接詳細(xì)信息的ID號(hào)和鏈接的ID號(hào)。關(guān)聯(lián):關(guān)聯(lián)轉(zhuǎn)換為鏈接詳細(xì)信息與鏈接列表之間一對(duì)一關(guān)系,外碼為鏈接詳細(xì)信息的ID號(hào)與鏈接列表的ID號(hào)。4.2.4 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)物理結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)包括存儲(chǔ)類型的選擇、屬性數(shù)據(jù)類型的確定、表的索引結(jié)構(gòu)的確定和數(shù)據(jù)庫存取路徑的確定。本系統(tǒng)的數(shù)據(jù)庫存放在與服務(wù)器程序相同的路徑中,在程序中通過應(yīng)用接口以應(yīng)用程序賬戶的方式訪問數(shù)據(jù)庫。在數(shù)據(jù)庫表設(shè)計(jì)器中,為每一個(gè)關(guān)系設(shè)計(jì)對(duì)應(yīng)的表,并確定各屬性的數(shù)據(jù)類型和空間占用。1、鏈接詳細(xì)信息(contents)數(shù)據(jù)表設(shè)計(jì)見表4.1 。表4.1 鏈接詳細(xì)信息數(shù)據(jù)表字段含義字段名數(shù)據(jù)類型是否為主鍵可否為空ID號(hào)idint(11)YESNO字符集格式charsetVarchar(128)NOYES標(biāo)題信息TitletextNOYES關(guān)鍵字信息KeywordtextNOYES簡(jiǎn)單描述descriptionlongtextNOYES2、鏈接(urls)數(shù)據(jù)表設(shè)計(jì)見表4.2 。表4.2 連接數(shù)據(jù)表字段含義字段名數(shù)據(jù)類型是否為主鍵可否為空ID號(hào)idint(11)YESNO訪問地址urltextNOYES收錄時(shí)間capture_timetimestampNOCURRENT_TIMESTAMP3、鏈接列表(links)數(shù)據(jù)表設(shè)計(jì)見表4.3 。表4.3 鏈接列表數(shù)據(jù)表字段含義字段名數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黨章黨史國史國情知識(shí)競(jìng)賽題庫及答案(共190題)
- 溶血三項(xiàng)在新生兒溶血檢測(cè)中的靈敏度及特異度分析
- 學(xué)院食材采購 投標(biāo)方案(技術(shù)方案)
- 電商平臺(tái)具體業(yè)務(wù)
- 中醫(yī)護(hù)理學(xué)(第5版)課件 第一節(jié) 中藥方劑基本常識(shí)
- 電子商務(wù)安全交易規(guī)范手冊(cè)
- 公路建設(shè)項(xiàng)目工程可行性研究報(bào)告編制辦法
- 系統(tǒng)可行性分析包括哪些內(nèi)容
- 農(nóng)產(chǎn)品加工與綜合利用技術(shù)手冊(cè)
- 品牌建設(shè)與營銷策略實(shí)施方案
- 2024年廣東省公務(wù)員錄用考試《行測(cè)》真題及解析
- 人際交往與人際溝通
- “雙循環(huán)”視閾下我國稀土產(chǎn)業(yè)價(jià)值鏈的邏輯構(gòu)成與重構(gòu)路徑研究
- 2024年煤礦安全管理人員(掘進(jìn)班組長(zhǎng))考試題庫(濃縮500題)
- 二十屆三中全會(huì)精神知識(shí)競(jìng)賽試題及答案
- 儲(chǔ)能解決方案
- 統(tǒng)編版六年級(jí)下冊(cè)道德與法治1-學(xué)會(huì)尊重-課件(54張課件)
- GB/T 44309-2024陶瓷巖板
- 廣東省深圳市寶安區(qū)2024屆六年級(jí)數(shù)學(xué)小升初摸底考試含解析
- DL∕T 5156.2-2015 電力工程勘測(cè)制圖標(biāo)準(zhǔn) 第2部分:巖土工程
- CHT 1020-2010 1:500 1:1 000 1:2 000地形圖質(zhì)量檢驗(yàn)技術(shù)規(guī)程(正式版)
評(píng)論
0/150
提交評(píng)論