




已閱讀5頁,還剩56頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
沈陽理工大學學士學位論文摘 要隨著互聯網的迅速發展,網絡規模不斷擴大,信息儲量急劇增長,搜索引擎技術越來越得到廣泛地使用。本文通過對各種通用搜索引擎的關鍵技術進行研究,完成了對通用WEB搜索引擎的設計與實現。搜索引擎系統包括3個功能模塊:網頁獲取模塊,數據存儲模塊和檢索模塊。本人在課題組中主要承擔工作有:系統整體設計、數據庫的設計實現以及中文分詞系統的設計實現。本系統的整體設計突出操作簡便、功能強大、人性化設置、并行處理可移植等特點,其中中文分詞,各模塊的存儲流程是系統的設計亮點。本文中對搜索引擎的各種技術算法進行了介紹,而且根據系統的需要進行了各功能模塊的設計。數據庫設計的特點是:大容量存儲、高效檢索和簡單查詢。索引數據庫以頁面信息表和詞庫表為核心,通過對詞創建索引以提高檢索效率;中文分詞系統采用JDK平臺開發,實現對中英文句子的分割,使其分為單獨的詞或詞組。關鍵詞:搜索引擎;WEB搜索;中文分詞;索引數據庫;排序。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 國內外研究現狀及發展趨勢11.2.1 搜索引擎的發展歷史介紹11.2.2 當今互聯網搜索引擎巨頭的發展狀況21.3 本研究的內容及研究方案32 搜索引擎相關技術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數據庫訪問技術82.3.1 傳統關系型數據庫MySQL92.3.2 NoSQL Sequoiadb數據庫102.4 JSP技術112.4.1 JSP語言介紹112.4.2 JSP優勢122.5 WEB開發輕平臺-Tomcat簡介123 系統分析143.1 搜索引擎說明143.1.1 搜索引擎描述143.1.2 搜索引擎開發背景143.2 開發任務143.2.1 搜索引擎的設計要求和目標143.2.2 搜索引擎的設計原則153.3 用戶需求分析153.3.1 用戶使用搜索功能習慣153.3.2 用戶使用搜索功能用例分析163.4 搜索引擎功能需求分析173.4.1 搜索引擎支持客戶端類型173.4.2 搜索引擎基本功能173.4.2 數據庫數據存儲分析183.5 界面需求分析184 搜索引擎設計194.1 搜索引擎結構設計194.2 數據庫設計204.2.1 數據庫設計的步驟204.2.2 數據庫概念結構設計214.2.3 數據庫邏輯結構設計234.2.4 數據庫物理結構設計234.3 數據存儲流程設計244.3.1 網絡機器人的基本結構及工作原理254.3.2 從網絡機器人的角度對互聯網進行劃分254.3.3 抓取策略264.4 搜索引擎流程設計284.4.1 搜索引擎總體流程設計284.4.2 檢驗載入搜索頁面合法性294.4.3 搜索功能設計305 搜索引擎實現325.1 JavaBean實現說明325.1.1 數據庫連接類MysqlBean325.1.2 分詞處理類SpliteWord335.1.3 生成SQL類CreateSql335.1.4 創建ResultBean類CreateResult385.1.5 結果集類ResultBean395.2 調用JSpider實現數據收錄405.3 實現搜索頁面41結 論45致 謝46參考文獻47附錄A 英語原文48附錄B 英語譯文52IV沈陽理工大學學士學位論文1 緒論1.1 研究的背景及意義自上個世紀90年代以來隨著網絡化和信息數字化技術的發展,網絡上的信息量以幾何數量級遞增,人們已經無法很輕易地在網絡上搜索到自己想要的信息,卻陷入了信息過剩的苦惱當中。這時,搜索引擎軟件應運而生。搜索引擎是指根據一定的策略、運用特定的計算機程序搜集互聯網上的信息,在對信息進行組織和處理后,并將處理后的信息顯示給用戶,是為用戶提供檢索服務的系統。從使用者的角度看,搜索引擎提供一個包含搜索框的頁面,在搜索框輸入詞語,通過瀏覽器提交給搜索引擎后,搜索引擎就會返回跟用戶輸入的內容相關的信息列表。如果人們希望在互聯網上搜索一些資料,通過搜索引擎就可以快速地查找到你所需要的站點。移動終端近幾年發展迅速,Android系統的手機占有率已經不可同日而語,所以人們對Android移動應用的需求也越來越大,將搜索應用和Android手機結合將會是一個互聯網發展的趨勢。1.2 國內外研究現狀及發展趨勢1.2.1 搜索引擎的發展歷史介紹互聯網發展早期,以雅虎為代表的網站分類目錄查詢非常流行。網站分類目錄由人工整理維護,精選互聯網上的優秀網站,并簡要描述,分類放置到不同目錄下。用戶查詢時,通過一層層的點擊來查找自己想找的網站。也有人把這種基于目錄的檢索服務網站稱為搜索引擎,但從嚴格意義上講,它并不是搜索引擎。1990年,加拿大麥吉爾大學計算機學院的師生開發出Archie。當時,萬維網還沒有出現,人們通過FTP來共享交流資源。Archie能定期搜集并分析FTP服務器上的文件名信息,提供查找分別在各個FTP主機中的文件。用戶必須輸入精確的文件名進行搜索,Archie告訴用戶哪個FTP服務器能下載該文件。雖然Archie搜集的信息資源不是網頁,但和搜索引擎的基本工作方式是一樣的:自動搜集信息資源、建立索引、提供檢索服務。所以,Archie被公認為現代搜索引擎的鼻祖。自從搜索引擎問世后,搜索引擎技術飛速發展。1994年4月,斯坦福大學的兩名博士生,美籍華人楊致遠和David Filo共同創辦了Yahoo!隨著訪問量和收錄鏈接數的增長,Yahoo目錄開始支持簡單的數據庫搜索。因為Yahoo!的數據是手工輸入的,所以不能真正被歸為搜索引擎,事實上只是一個可搜索的目錄。Yahoo!中收錄的網站,因為都附有簡介信息,所以搜索效率明顯提高。1996年,二名斯坦福大學的理學博士生拉里佩奇和謝爾蓋布林開發了一個對網站之間的關系做精確分析為基礎的搜尋引擎,他的使用結果上勝于當時使用的基本搜索技術。Google搜索引擎以它簡單,干凈的頁面設計和最有關的搜尋結果贏得了使用者的擁戴。從此,網上沖浪者在互聯網上搜索需要信息的難度大大降低,互聯網得到了極大發展。1.2.2 當今互聯網搜索引擎巨頭的發展狀況搜索引擎經過幾年的發展和摸索,越來越貼近人們的需求,搜索引擎的技術也得到了很大的發展。搜索引擎的最新技術發展包括以下幾個方面:提高搜索引擎對用戶檢索提問的理解為了提高搜索引擎對用戶檢索提問的理解,就必須有一個好的檢索提問語言,為了克服關鍵詞檢索和目錄查詢的缺點,已經出現了自然語言智能答詢。用戶可以輸入簡單的疑問句,比如“how can kill virus of computer?”。搜索引擎在對提問進行結構和內容的分析之后,或直接給出提問的答案,或引導用戶從幾個可選擇的問題中進行再選擇。自然語言的優勢在于,一是使網絡交流更加人性化,二是使查詢變得更加方便、直接、有效。就以上面的例子來講,如果用關鍵詞查詢,多半人會用“virus”這個詞來檢索,結果中必然會包括各類病毒的介紹、病毒是怎樣產生的等等許多無效信息,而用“how can kill virus of computer?”,搜索引擎會將怎樣殺病毒的信息提供給用戶,提高了檢索效率。對檢索結果進行處理:1、基于鏈接評價的搜索引擎基于鏈接評價的搜索引擎的優秀代表是Google,它獨創的“鏈接評價體系”是基于這樣一種認識,一個網頁的重要性取決于它被其它網頁鏈接的數量,特別是一些已經被認定是“重要”的網頁的鏈接數量。這種評價體制與科技引文索引的思路非常相似,但是由于互聯網是在一個商業化的環境中發展起來的,一個網站的被鏈接數量還與它的商業推廣有著密切的聯系,因此這種評價體制在某種程度上缺乏客觀性。2、基于訪問大眾性的搜索引擎基于訪問大眾性的搜索引擎的代表是direct hit,它的基本理念是多數人選擇訪問的網站就是最重要的網站。根據以前成千上萬的網絡用戶在檢索結果中實際所挑選并訪問的網站和他們在這些網站上花費的時間來統計確定有關網站的重要性排名,并以此來確定哪些網站最符合用戶的檢索要求。因此具有典型的趨眾性特點。這種評價體制與基于鏈接評價的搜索引擎有著同樣的缺點。3、去掉檢索結果中附加的多余信息有調查指出,過多的附加信息加重了用戶的信息負擔,為了去掉這些過多的附加信息,可以采用用戶定制、內容過濾等檢索技術。確定搜索引擎信息搜集范圍網上的信息浩如煙海,網絡資源以十倍速的增長,一個搜索引擎很難收集全所有主題的網絡信息,即使信息主題收集得比較全面,由于主題范圍太寬,很難將各主題都做得精確而又專業,使得檢索結果垃圾太多。這樣以來,垂直主題的搜索引擎以其高度的目標化和專業化在各類搜索引擎中占據了一系席之地,比如象股票、天氣、新聞等類的搜索引擎,具有很高的針對性,用戶對查詢結果的滿意度較高。作者認為,垂直主題有著極大的發展空間。1.3 本研究的內容及研究方案課題完成基于Android客戶端的WEB搜索引擎特點和設計方法研究,完成互聯網信息錄入和關鍵字分詞、搜索。課題內容如下:1、搜索器:其功能是在互聯網中漫游,發現和搜集信息。2、索引器:其功能是理解搜索器所搜索到的信息,從中抽取出索引項,用于表示文檔以及生成文檔庫的索引表。3、檢索器:其功能是根據用戶的查詢在索引庫中快速檢索文檔,進行相關度評價,對將要輸出的結果排序,并能按用戶的查詢需求合理反饋信息。4、用戶接口:其作用是接納用戶查詢、顯示查詢結果、提供個性化查詢項。5、基于Android客戶端的WEB瀏覽。課題研究方案:對于課題理論研究部分,通過查找相關資料,進行邏輯推演,得出結論。對于搜索引擎設計和實現部分,要參考現今主流的技術、關鍵字分詞算法,給出詳細的設計方案并實現。搜索引擎采用Java、JSP、Tomcat開發環境,數據存儲采用MySQL和Sequoiadb數據庫。2 搜索引擎相關技術2.1 JSpider軟件2.1.1 JSpider軟件介紹JSpider是一個純Java編寫的高度可配置和可定制的網絡蜘蛛引擎。你可以通過JSpider檢查提供的網站是否出錯,可以對提供的網站內部的鏈接進行檢查,分析提供站點的結構,也可以通過JSpider下載一個完整的網站。Jspider的擴展性非常強大,你也可以自己定制一個JSpider插件來完成指定的功能。2.1.2 JSpider軟件工作原理如果把互聯網比喻成為一個蜘蛛網,那么,類似Jspider的軟件就像一只蜘蛛一樣,在互聯網上孜孜不倦地遍歷互聯網的上各個站點,然后將其指定內容存儲到數據庫當中。JSpider軟件又被叫作網絡爬蟲。網絡爬蟲是一個自動提取網頁的程序,它為搜索引擎從萬維網上下載網頁,是搜索引擎的重要組成。傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件,流程如圖2.1所示。聚焦爬蟲的工作流程較為復雜,需要根據一定的網頁分析算法過濾與主題無關的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊列。然后,它將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,并重復上述過程,直到遍歷完所有鏈接時停止。另外,所有被爬蟲抓取的網頁將會被存儲到數據庫當中,進行一定的分析、過濾,并建立索引,以便之后的查詢和檢索。圖2.1 JSpider工作原理2.2 Java、JSP和Android介紹2.2.1 Java介紹Java是一種可以撰寫跨平臺應用軟件的面向對象的程序設計語言,是由Sun Microsystems公司于1995年5月推出的Java程序設計語言和Java平臺(即JavaSE, JavaEE, JavaME)的總稱。Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于個人PC、數據中心、游戲控制臺、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社群。在全球云計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。Java由四方面組成:Java編程語言、Java類文件格式、Java虛擬機和Java應用程序接口(Java API)。平臺Java平臺由Java虛擬機(Java Virtual Machine,簡稱JVM)和Java 應用編程接口(Application Programming Interface,簡稱API)構成。Java應用編程接口為Java應用提供了一個獨立于操作系統的標準接口,可分為基本部分和擴展部分。在硬件或操作系統平臺上安裝一個Java平臺之后,Java應用程序就可運行。Java平臺已經嵌入了幾乎所有的操作系統。這樣Java程序可以只編譯一次,就可以在各種系統中運行。與傳統程序不同,Sun 公司在推出 Java 之際就將其作為一種開放的技術。全球數以萬計的 Java 開發公司被要求所設計的 Java 軟件必須相互兼容。“Java 語言靠群體的力量而非公司的力量”是Sun公司的口號之一,并獲得了廣大軟件開發商的認同。這與微軟公司所倡導的注重精英和封閉式的模式完全不同。Sun 公司對 Java 編程語言的解釋是:Java 編程語言是個簡單、面向對象、分布式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和動態的語言。Java 平臺是基于 Java 語言的平臺。這樣的平臺非常流行。因此微軟公司推出了與之競爭的.NET平臺以及模仿Java的C#語言。2.2.2 Android介紹Android是一種基于Linux的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦,由Google公司和開放手機聯盟領導及開發。尚未有統一中文名稱,中國大陸地區較多人使用“安卓”或“安致”。Android操作系統最初由Andy Rubin開發,主要支持手機。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發商及電信營運商組建開放手機聯盟共同研發改良Android系統。隨后Google以Apache開源許可證的授權方式,發布了Android的源代碼。第一部Android智能手機發布于2008年10月。Android逐漸擴展到平板電腦及其他領域上,如電視、數碼相機、游戲機等。2011年第一季度,Android在全球的市場份額首次超過塞班系統,躍居全球第一。Android系統架構和氣操作系統一樣,采用了分層的架構。從圖2.2看,Android分為四個蹭,從高層到底層分別是應用程序曾、應用程序框架層、系統運行庫層和Linux內核層。圖2.2 Android分層Android應用程序框架,開發人員可以完全訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發布它的功能塊并且任何其它的應用程序都可以使用其所發布的功能塊(不過得遵循框架的安全性)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。Android 包含一些C/C+庫,這些庫能被Android系統中不同的組件使用。它們通過 Android 應用程序框架為開發者提供服務。2.3 SQL數據庫訪問技術開發一個成功的搜索引擎,數據庫扮演著一個重要的角色。從Jspider遍歷并下載網站開始,就要求數據庫必須能承受大數據數量、長時間數據插入,保證快速查找指定關鍵字段和保持數據庫長期穩定性。數據庫是搜索引擎的核心部分之一,涉及到搜索數據的完整性和實時性。搜索引擎需要一種高效、安全的存取方式訪問數據庫里的內容,本搜索引擎采用傳統數據庫Mysql和新型Nosql數據庫Sequoiadb做為解決方案,使用標準的SQL(結構化查詢語言)和Java提供的接口驅動的方式存取數據庫。2.3.1 傳統關系型數據庫MySQL1、MySQL簡介:MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB公司開發,目前屬于Oracle公司。MySQL是一種關聯數據庫管理系統,關聯數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。MySQL的SQL語言是用于訪問數據庫的最常用標準化語言。目前MySQL被廣泛地應用在Internet上的中小型網站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫2、關系型數據庫介紹在關系型數據庫中數據以行和列的形式存儲,以便于用戶理解,這一系列的行和列被稱為表,一組表便組成了數據庫。在關系數據庫中:各數據項之間用關系來組織,關系是表之間的一種連接,通過關系,我們可以更靈活地表示和操縱數據;另外,用戶可以非常方便的用查詢來檢索數據庫中的數據,一個Query是一個用于指定數據庫中行和列的SELECT語句。關系數據庫是支持關系模型的數據庫系統。關系模型由關系數據結構、關系操作集合和完整性約束三部分組成。關系操作分為關系代數、關系演算、具有關系代數和關系演算雙重特點的語言(SQL語言)。完整性約束提供了豐富的完整性:實體完整性、參照完整性和用戶定義的完整性。實體完整性規則:若屬性A是基本關系R的屬性,則屬性A不能取空值。參照完整性:若屬性(屬性組)F是基本關系R的外碼,它與基本關系S的主碼Key相對應(基本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必須為:空、.或者取空值(F的每個屬性值均為空值);關系代數的運算按運算符的不同主要分為傳統的集合運算和專門的關系運算兩類。集合運算有二目運算,包括并、交、差、廣義笛卡爾積四種運算。專門的關系運算包括選擇、投影、連接、除等。根據關系系統支持關系程度不同,可以把關系系統分為四類:表式系統、(最小)關系系統、關系完備系統、全關系系統。表式系統:只支持關系數據結構(即表),不支持集合級的操作。(最小)關系系統:支持關系數據結構,它支持關系數據結構和選擇、投影、連接三種關系操作。關系上完備的系統這類系統支持關系數據結構和所有的關系代數操作(功能上與關系代數等價)。2.3.2 NoSQL Sequoiadb數據庫1、Sequoiadb簡介Sequoiadb數據庫是由巨杉公司自主研發的一款具有完全自主知識產權的大數據數據庫內核。Sequoiadb數據庫是一款非關系型型數據庫,對比傳統的關系型數據庫,Sequoiadb數據庫能更好地支持分布式數據存儲、高并發性數據操作,而且未來對于數據庫的擴容成本也較傳統數據庫低。2、NoSQL數據庫介紹NoSQL = Not Only SQL ,意即“不僅僅是SQL”,是一項全新的數據庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關系型的數據存儲,相對于鋪天蓋地的關系型數據庫運用,這一概念無疑是一種全新的思維的注入。隨著互聯網web2.0網站的興起,非關系型的數據庫成了一個極其熱門的新領域,非關系數據庫產品的發展非常迅速。NoSQL數據庫特點:1) 它們可以處理超大量的數據。2) 它們運行在便宜的PC服務器集群上,PC集群擴充起來非常方便并且成本很低,避免了“sharding”操作的復雜性和成本。3) 它們擊碎了性能瓶頸,NoSQL的支持者稱,通過NoSQL架構可以省去將Web或Java應用和數據轉換成SQL友好格式的時間,執行速度變得更快。4) 沒有過多的操作,雖然NoSQL的支持者也承認關系數據庫提供了無可比擬的功能集合,而且在數據完整性上也發揮絕對穩定,他們同時也表示,企業的具體需求可能沒有那么多。3、NoSQL數據庫比較關系型數據庫優點:(1)易擴展NoSQL數據庫種類繁多,但是一個共同的特點都是去掉關系數據庫的關系型特性。數據之間無關系,這樣就非常容易擴展。也無形之間,在架構的層面上帶來了可擴展的能力。(2)大數據量,高性能NoSQL數據庫都具有非常高的讀寫性能,尤其在大數據量下,同樣表現優秀。這得益于它的無關系性,數據庫的結構簡單。一般MySQL使用 Query Cache,每次表的更新Cache就失效,是一種大粒度的Cache,在針對web2.0的交互頻繁的應用,Cache性能不高。而NoSQL的 Cache是記錄級的,是一種細粒度的Cache,所以NoSQL在這個層面上來說就要性能高很多了。(3)靈活的數據模型NoSQL無需事先為要存儲的數據建立字段,隨時可以存儲自定義的數據格式。而在關系數據庫里,增刪字段是一件非常麻煩的事情。如果是非常大數據量的表,增加字段簡直就是一個噩夢。這點在大數據量的web2.0時代尤其明顯。(4)高可用NoSQL在不太影響性能的情況,就可以方便的實現高可用的架構。比如Cassandra,HBase模型,通過復制模型也能實現高可用。2.4 JSP技術2.4.1 JSP語言介紹JSP(Java Server Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。JSP技術有點類似ASP技術,它是在傳統的網頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件(*.jsp)。 用JSP開發的Web應用是跨平臺的,既能在Linux下運行,也能在其他操作系統上運行。JSP其根本是一個簡化的Serlet設計,他實現了Html語法中的java擴張(以 形式)。JSP與Servlet一樣,是在服務器端執行的,通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。Web服務器在遇到訪問JSP網頁的請求時,首先執行其中的程序段,然后將執行結果連同JSP文件中的HTML代碼一起返回給客戶端。插入的Java程序段可以操作數據庫、重新定向網頁等,以實現建立動態網頁所需要的功能。JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態網頁的處理邏輯。網頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。JSP將網頁邏輯與網頁設計的顯示分離,支持可重用的基于組件的設計,使基于Web的應用程序的開發變得迅速和容易。 JSP(JavaServer Pages)是一種動態頁面技術,它的主要目的是將表示邏輯從Servlet中分離出來。JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端請求以后對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet是JSP的技術基礎,而且大型的Web應用程序的開發需要Java Servlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全的面向對象,具有平臺無關性且安全可靠,主要面向因特網的所有特點。2.4.2 JSP優勢1、一次編寫,到處運行。除了系統之外,代碼不用做任何更改。2、系統的多平臺支持。基本上可以在所有平臺上的任意環境中開發,在任意環境中進行系統部署,在任意環境中擴展。相比ASP的局限性JSP的優勢是顯而易見的。3、強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多臺服務器進行集群和負載均衡,到多臺Application進行事務處理,消息處理,一臺服務器到無數臺服務器,Java顯示了一個巨大的生命力。4、多樣化和功能強大的開發工具支持。這一點與ASP很像,Java已經有了許多非常優秀的開發工具,而且許多可以免費得到,并且其中許多已經可以順利的運行于多種平臺之下。5、支持服務器端組件。web應用需要強大的服務器端組件來支持,開發人員需要利用其他工具設計實現復雜功能的組件供web頁面調用,以增強系統性能。JSP可以使用成熟的JAVA BEANS 組件來實現復雜商務功能。2.5 WEB開發輕平臺-Tomcat簡介Tomcat是一個免費的開源的Serlvet容器,它是Apache基金會的Jakarta項目中的一個核心項目,由Apache,Sun和其它一些公司及個人共同開發而成。由于有了Sun的參與和支持,最新的Servlet和JSP規范總能在Tomcat中得到體現。與傳統的桌面應用程序不同,Tomcat中的應用程序是一個WAR(Web Archive)文件。WAR是Sun提出的一種Web應用程序格式,與JAR類似,也是許多文件的一個壓縮包。這個包中的文件按一定目錄結構來組織:通常其根目錄下包含有Html和JSP文件或者包含這兩種文件的目錄,另外還會有一個WEB-INF目錄,這個目錄很重要。通常在WEB-INF目錄下有一個web.xml文件和一個classes目錄,web.xml是這個應用的配置文件,而classes目錄下則包含編譯好的Servlet類和JSP或Servlet所依賴的其它類(如JavaBean)。通常這些所依賴的類也可以打包成JAR放到WEB-INF下的lib目錄下,當然也可以放到系統的CLASSPATH中,但那樣移植和管理起來不方便。 在Tomcat中,應用程序的部署很簡單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會自動檢測到這個文件,并將其解壓。你在瀏覽器中訪問這個應用的JSP時,通常第一次會很慢,因為Tomcat要將JSP轉化為Servlet文件,然后編譯。編譯以后,訪問將會很快。另外Tomcat也提供了一個應用:manager,訪問這個應用需要用戶名和密碼,用戶名和密碼存儲在一個xml文件中。通過這個應用,輔助于Ftp,你可以在遠程通過Web部署和撤銷應用。當然本地也可以。3 系統分析3.1 搜索引擎說明3.1.1 搜索引擎描述本研究開發的系統名為基于Android客戶端的搜索引擎開發實現。搜索引擎的開發環境為JDK1.6.0和Tomcat,利用Android瀏覽器插件實現WEB瀏覽,也可以通過傳統的桌面瀏覽器訪問搜索的始頁面。3.1.2 搜索引擎開發背景搜索引擎是一種用于幫助Internet用戶查詢信息的搜索工具,它以一定的策略在Internet中搜集、發現信息,對信息進行理解、提取、組織和處理,并為用戶提供檢索服務,從而起到信息導航的目的。在人類進入網絡時代以前,各個行業普遍感覺信息匱乏的問題,這主要是由于缺乏信息交流的方式。Internet的出現在很大程度上解決了這一問題,但很多人仍感到缺乏他們所需要的信息。而與此同時,相應的信息在Internet上卻大量存在著。真正的問題出在人們在如此大的信息海洋里難以找到他們所需要的準確信息。因此,搜索引擎便成為Internet發展的關鍵性條件。正如大海里蘊藏了豐富的資源,但人們卻因為沒有先進的工具而無法獲得、利用這些資源。Internet作為一個信息的海洋,人們用瀏覽器挨個網頁尋找的方法將很難找到準確的信息,而只能是浪費大量的時間和網絡資源。搜索引擎將 Internet網中對使用者有用的信息提取出來,無異于從Internet中提煉真金。3.2 開發任務3.2.1 搜索引擎的設計要求和目標開發一個優秀的搜索引擎,要求數據實時更新,中文分詞結果符合用戶預期,搜索速度迅速,各個客戶端之間兼容性好。設計要導到如下目標:1、執行速度快,對于數據庫里成千上萬條記錄,要求快速、準確地查詢出用戶所希望的結果集,數據庫的穩定性至關重要,設計一個良好的邏輯關系非常重要。2、安全、穩定性高,對于不同的搜索內容必須保證系統的穩定。3、中文分詞符合詞意,對于一個中文搜索引擎,中文分詞是一個重要的設計環節,由于中文的特殊性,使得中文搜索引擎在設計時必須考慮中文詞匯的有意義性,否則搜索結果會與用戶當初設想的相差太遠。4、數據記錄保持更新,搜索引擎里面的數據內容必須在若干周期內重新更新,保證搜索結果集的實時性。5、多客戶端訪問,開發客戶端過程中考慮各個客戶端之間的兼容性。6、操作簡單、使用界面具有人性化,清晰明了。3.2.2 搜索引擎的設計原則為了開發一個搜索速度快、高性能的搜索引擎,需要遵循如下設計原則:1、數據庫設計原則,充分考慮系統的性能,較少數據冗余,充分考慮各實體的構成和各字段的屬性,力求最優設計。2、完整性、真實性、實時性原則,搜索引擎設計時保證數據的完整性、真實性、實時性,搜索的結果集必須為有效連接。3、簡單性原則,系統程序要求在保證完整性原則的情況下從簡設計,系統必須易于使用,學習成本低。4、面向對象原則,系統設計符合面向對象設計原理,模塊化,易于實現和擴展,維護成本低。5、界面友好,界面美觀、大氣、易用。3.3 用戶需求分析3.3.1 用戶使用搜索功能習慣用戶在使用搜索引擎時,主要原因是在生活中遇到不明白的事物,急需在互聯網中查找他想要的答案。網上用戶使用搜索引擎時的習慣如圖3.1所示。圖3.1 用戶使用搜索引擎分析用戶使用搜索引擎的習慣分析:1) 用戶在生活中遇到問題;2) 用戶使用搜索引擎,在搜索框中輸入想要查找的關鍵字;3) 使用搜索功能,搜索引擎在后臺進行數據處理,中文分詞分析,與數據庫進行交互;4) 客戶端取得服務器返回的結果集,進行排版顯示;5) 用戶查看搜索結果,點擊鏈接,查看網站的具體內容。3.3.2 用戶使用搜索功能用例分析用戶在生活中使用搜索引擎方式如圖3.2所示。圖3.2 用戶使用搜索引擎用例用戶在生活中發現問題,使用桌面瀏覽器或者Android瀏覽器訪問搜索頁面,通過關鍵字在數據庫中查找對應的信息。3.4 搜索引擎功能需求分析3.4.1 搜索引擎支持客戶端類型本搜索引擎是基于WEB瀏覽器開發的,支持桌面版本的所有瀏覽器和Android客戶端的瀏覽器使用。3.4.2 搜索引擎基本功能本搜索引擎通過WEB瀏覽器端輸入要搜索的關鍵字,引擎進行中文分詞、關鍵字處理并送進數據庫進行操作,然后用戶獲取到需要搜索的結果集。通過對引擎的目標確定和用例分析,可以全面準確地把握引擎的功能需求。這套基于WEB瀏覽器的搜索引擎可以方便用戶快速地在Internet上查找資源,免除由于Internet資源浩瀚而無法快速、準確地查找想要的站點。由于本引擎設計時已經考慮到跨平臺的兼容性問題,所以用戶無需擔心由于不同客戶端而造成引擎無法正常工作、顯示問題。引擎具體功能清單如下:1、實現跨平臺,引擎在設計之初已經考慮到跨平臺的兼容性,所以對于桌面的瀏覽器和Android瀏覽器可以完美訪問搜索頁。2、中文分詞,可以對一行長中文句子進行分詞,分成若干中文短語,再送進數據庫進行搜索,從而提高搜索的準確性,同時符合用戶日常輸入習慣。3、結果集分頁顯示,對搜索返回的結果集進行分頁顯示,方便用戶查看各個搜索結果。4、數據庫信息實時更新,定期對數據庫中的信息進行更新處理,保證搜索結果的實時性。3.4.2 數據庫數據存儲分析搜索引擎搜索的基礎數據全部存儲在數據庫當中,所以設計良好的數據表結構也是優秀搜索引擎的關鍵。數據庫的主要實體有:1、鏈接詳細信息表,用于存儲當前鏈接的標題、簡單說明、字符集和關鍵字;2、鏈接列表,用于存儲當前鏈接當中再指向其他的超鏈接列表;3、鏈接表,用于存儲當前鏈接的具體訪問地址,存儲時間。3.5 界面需求分析軟件用戶界面目前已經成為衡量軟件質量的重要指標,友好的界面可以讓用戶輕松使用軟件搜索所需要的資源,用戶對軟件的好感可以很好的轉化為用戶對軟件的喜愛和依賴,在提高軟件的質量同時,也可以引導用戶高效地查找資源,特別是面對不熟悉電腦操作的中老年人群,簡單的界面也是他們是否會選擇使用你的搜索引擎關鍵。所以在設計操作界面時,開發者努力做到使用界面清晰明了,讓第一次使用的用戶可以輕易使用。本搜索引擎,用戶通過瀏覽器實現搜索功能,用戶操作界面就是網頁。為了使用戶擁有良好的使用體驗,要求網頁設計到達以下要求。1、頁面布局規整,按鈕設計應該大氣、顯眼。2、頁面背景美觀、柔和。3、頁面功能布置有條理,清晰引導用戶使用。4 搜索引擎設計4.1 搜索引擎結構設計根據需求分析,我們可以知道用戶在使用搜索功能時,客戶端一般是桌面瀏覽器或者移動瀏覽器,根據需求分析,可以設計出兼容多種客戶端平臺的搜索引擎結構,如圖4.1所示。圖4.1 搜索引擎使用設計如圖4.1中的設備功能說明:1、服務器:安裝Windows 7操作系統、Tomcat程序、配置JDK環境;2、數據庫:MySQL數據庫、Sequoiadb數據庫;3、終端設備:傳統桌面瀏覽器、移動瀏覽器。4.2 數據庫設計數據庫是搜索引擎的核心部分之一。搜索引擎的主要工作原理,當用戶通過客戶端輸入搜索關鍵字后,送入引擎中進行分詞工作,然后將要搜索命令傳送到數據庫進行查詢操作,最后將查詢結果返還到客戶端中顯示打印,所以數據庫的設計直接影響到搜索結果的返回。對于一個出色的搜索引擎,如何設計出一個高效、穩定、安全的數據庫成為關鍵。4.2.1 數據庫設計的步驟數據庫設計一般經過規劃、需求分析、概念設計、邏輯設計和物理設計五個步驟,下面分別介紹這五個步驟要完成的工作。1、 數據庫規劃,對于一個數據庫應用項目,需要在規劃階段完成,系統調查、可行性分析和系統目標確定等工作,項目實施作初步準備。2、需求分析,確定數據庫的使用范圍,信息收集和處理需求,產生系統業務流程圖、系統關聯圖、以及數據流圖。3、概念結構設計,概念結構設計的目標是產生系統信息需求的數據庫概念結構,即概念模型,概念模型是獨立于計算機硬件結構和數據庫管理系統的。數據庫概念結構設計采用實體-聯系(E-R)模型設計方法,實體-聯系(E-R)模型設計方法可以直觀地描述概念模型。組成實體-聯系(E-R)模型的元素有實體、聯系和屬性,實體是指用戶工作環境中所涉及的事物,屬性是實體特性的描述,聯系表示實體之間的關系。圖4.2為E-R模型中各元素的表示方法。圖4.2 實體描述4、邏輯結構設計,數據庫邏輯結構設計就是將E-R圖轉換為數據庫管理系統支持的數據模型。對于關系數據庫,就是要轉換為關系模式,確定實體的碼即數據庫中的數據表以及其主鍵,確定實體聯系的類型,即將聯系轉換為一對一、一對多、多對多等類型。5、物理結構設計,數據庫物理結構設計包括存儲類型的選擇、屬性數據類型的確定、表的索引結構的確定和數據庫存取路徑的確定,目前的主流數據庫管理系統提供易用的工具,幫助用戶完成數據庫的物理結構設計。在需求分析中已經完成數據庫的規劃和需求分析,之后三個小節將給出系統數據庫的概念結構設計、邏輯結構設計和物理結構設計。4.2.2 數據庫概念結構設計1、由數據庫需求分析可知,搜索引擎數據庫的實體包括鏈接詳細信息表、鏈接列表、鏈接表,實體之間關系如圖4.3所示。圖4.3 實體及實體之間關系E-R圖本搜索引擎對數據庫的使用,主要集中在關鍵的鏈接詳細信息表和鏈接表,因為本搜索引擎只對互聯網上各個站點的信息標題進行搜索,鏈接列表是記錄當前鏈接中它自身重定向的若干鏈接信息。2、鏈接詳細信息實體E-R圖,如圖4.4所示。圖4.4 鏈接詳細信息E-R圖3、鏈接實體E-R圖,如圖4.5所示圖4.5 鏈接實體E-R圖4、鏈接列表實體E-R圖,如圖4.6所示圖4.6 鏈接列表實體E-R圖4.2.3 數據庫邏輯結構設計數據庫邏輯結構設計要將獨立于數據庫管理系統的概念模型轉換為適于數據庫系統邏輯結構,轉換后的邏輯結構需合計算機處理信息的邏輯并能與數據庫系統的特性兼容。轉化過程中,每個實體都需要轉換為一個關系,每個關系的主碼必須不為空,對于二元聯系需要按照一對多、弱實體、一對一、多對多等聯系來定義外碼。根據數據庫實體E-R圖可以得到各實體的屬性:鏈接詳細信息:ID號,字符集格式,標題信息,關鍵字信息,簡單描述。鏈接:ID號,訪問地址,收錄信息。鏈接列表:ID號,鏈接地址。將概念模型轉換為如下的關系模式:鏈接詳細信息(ID號,字符集格式,標題信息,關鍵字信息,簡單描述),主碼為ID號,外碼為鏈接的ID號。鏈接(ID號,訪問地址,收錄信息),主碼為ID號,外碼為鏈接詳細信息的ID號。鏈接列表(ID號,鏈接地址),主碼為ID號,外碼為鏈接詳細信息的ID號。聯系:聯系轉換為鏈接詳細信息與鏈接之間一對一關系,外碼為鏈接詳細信息的ID號和鏈接的ID號。關聯:關聯轉換為鏈接詳細信息與鏈接列表之間一對一關系,外碼為鏈接詳細信息的ID號與鏈接列表的ID號。4.2.4 數據庫物理結構設計物理結構設計,數據庫物理結構設計包括存儲類型的選擇、屬性數據類型的確定、表的索引結構的確定和數據庫存取路徑的確定。本系統的數據庫存放在與服務器程序相同的路徑中,在程序中通過應用接口以應用程序賬戶的方式訪問數據庫。在數據庫表設計器中,為每一個關系設計對應的表,并確定各屬性的數據類型和空間占用。1、鏈接詳細信息(contents)數據表設計見表4.1 。表4.1 鏈接詳細信息數據表字段含義字段名數據類型是否為主鍵可否為空ID號idint(11)YESNO字符集格式charsetVarchar(128)NOYES標題信息TitletextNOYES關鍵字信息KeywordtextNOYES簡單描述descriptionlongtextNOYES2、鏈接(urls)數據表設計見表4.2 。表4.2 連接數據表字段含義字段名數據類型是否為主鍵可否為空ID號idint(11)YESNO訪問地址urltextNOYES收錄時間capture_timetimestampNOCURRENT_TIMESTAMP3、鏈接列表(links)數據表設計見表4.3 。表4.3 鏈接列表數據表字段含義字段名數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 各地區市場規模及增長趨勢統計表
- 地理信息系統GIS應用實踐操作題
- 國有企業財務內控管理的數字化轉型路徑
- 建立完善的反饋與監督機制以持續改進防治策略
- 鄉村醫療衛生人才激勵機制與職業發展支持
- 游戲娛樂行業市場份額報告表格
- 智慧中醫醫院質量控制與安全保障措施
- 現代汽車技術故障診斷與維修技能測試卷
- 激勵機制在家庭醫生簽約服務中的優化策略
- 校園一角的美景描寫周記(10篇)
- 2024風電場工程項目建設工期定額
- 廣西版三年級美術下冊全冊教案
- 浙江省杭州市上城區2023-2024學年八年級下學期期末考試英語試題+
- 《生物安全培訓》課件-2024鮮版
- 山東省臨沂市郯城縣2023-2024學年七年級下學期期末歷史試題
- 2024年石家莊房展會城發投集團招聘筆試沖刺題(帶答案解析)
- 2024年安徽省初中學業水平考試地理試卷(定心卷二)
- 生命哲學:愛、美與死亡智慧樹知到期末考試答案章節答案2024年四川大學
- 供應鏈管理(山東聯盟)-知到答案、智慧樹答案
- 2023版毛概課后答案
- 碳13(C13)市場規模分析
評論
0/150
提交評論