基于p2p架構(gòu)的企業(yè)級(jí)全文搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)---服務(wù)器與連接---畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩68頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  本 科 畢 業(yè) 論 文</p><p>  基于P2P架構(gòu)的企業(yè)級(jí)全文搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)---服務(wù)器與連接</p><p>  The Design and Implementation of P2P Architecture Based Enterprise Full-text Search System ------Server and connect

2、ion</p><p><b>  姓 名: </b></p><p><b>  學(xué) 號(hào):</b></p><p><b>  學(xué)  院:軟件學(xué)院</b></p><p><b>  系:軟件工程</b></p><p&

3、gt;  專 業(yè):軟件工程</p><p><b>  年 級(jí):</b></p><p><b>  指導(dǎo)教師: </b></p><p><b>  年 月</b></p><p><b>  摘 要</b></p>&

4、lt;p>  研究表明,技術(shù)型企業(yè)、設(shè)計(jì)類企業(yè)、軟件開(kāi)發(fā)企業(yè)均有這樣的特點(diǎn):技術(shù)和研發(fā)人員從網(wǎng)絡(luò)中獲取了大量的技術(shù)資料和市場(chǎng)信息,同時(shí),他們通過(guò)生產(chǎn)工作也積累了大量的項(xiàng)目經(jīng)驗(yàn),技術(shù)文檔等等,構(gòu)建起個(gè)人或團(tuán)體較完善的信息庫(kù)。但由于公司與公司間商業(yè)性競(jìng)爭(zhēng)而限于技術(shù)性保密和員工隱私等問(wèn)題,這些有高價(jià)值信息無(wú)法在企業(yè)內(nèi)部形成有效的流動(dòng)和傳播,從而形成了一個(gè)個(gè)信息孤島。</p><p>  針對(duì)此,急需研發(fā)一個(gè)便于共

5、享企業(yè)內(nèi)部資源的信息共享系統(tǒng)?;?,企業(yè)內(nèi)部技術(shù)、項(xiàng)目資料多以文件形式存儲(chǔ)的特點(diǎn),開(kāi)發(fā)一個(gè)企業(yè)級(jí)全文搜索引擎是當(dāng)務(wù)之急。而P2P架構(gòu)在互聯(lián)網(wǎng)應(yīng)用以其方便,信息交互迅速,結(jié)點(diǎn)平等等特點(diǎn)運(yùn)用極其廣泛,據(jù)電信部門公布的數(shù)據(jù)表明:當(dāng)今基于P2P技術(shù)的BT流量占到計(jì)算機(jī)網(wǎng)信息量的60%以上,可見(jiàn)其運(yùn)用廣泛。因此,我們提出一種基于P2P架構(gòu)的企業(yè)資源搜索引擎,一個(gè)用于知識(shí)型企業(yè)內(nèi)部的員工之間的信息共享的檢索工具。該項(xiàng)目基于Windows Searc

6、h 服務(wù),根據(jù)用戶自定義的搜索需求,進(jìn)行局域網(wǎng)絡(luò)全文文件搜索。使局域網(wǎng)絡(luò)內(nèi)的共享資源以一個(gè)界面就能全部呈現(xiàn)給用戶,整個(gè)網(wǎng)絡(luò)內(nèi)計(jì)算機(jī)資源便形成一個(gè)資源池,任何用戶能夠以使用本地資源方式使用網(wǎng)絡(luò)內(nèi)的資源。服務(wù)器同時(shí)不斷整合搜索結(jié)果:關(guān)鍵詞、詞頻統(tǒng)計(jì)數(shù)據(jù)、文檔的存儲(chǔ)位置等信息。當(dāng)任何一個(gè)用戶試圖搜索某一個(gè)資源時(shí),系統(tǒng)自動(dòng)在企業(yè)內(nèi)部網(wǎng)絡(luò)進(jìn)行搜索和適配,并將合適的文檔直接推送到搜索結(jié)果集中,并將檢索結(jié)果保存在內(nèi)部服務(wù)器端以加速二次檢索,形成一個(gè)企

7、業(yè)網(wǎng)內(nèi)的P2P搜索共享系統(tǒng)。</p><p>  項(xiàng)目的主要任務(wù)是通過(guò)Windows Search服務(wù)實(shí)現(xiàn)文檔的搜索和共享,使用windows search API用C#語(yǔ)言構(gòu)建基于Socket編程和多線程技術(shù)實(shí)現(xiàn)的P2P客戶端和服務(wù)端。</p><p>  關(guān)鍵詞:P2P ;企業(yè)文件共享;全文搜索</p><p><b>  Abstract</b

8、></p><p>  Recent researches prove that Technology-based enterprises, design-based enterprise, software development and service enterprises all have the following characteristics: technology and R & D

9、 personnel get a great deal of technical information and market information from the Internet, and through the production lot they have accumulated project experience, technical documentation, etc., that builds a better

10、information base of individuals or groups. However, limited commercial confidentiality and </p><p>  So, needed to develop an information sharing system for facilitate to share internal resources. Based on t

11、he characteristic of majority of enterprise technology, project information stored in the form of document, the development of an enterprise-class full-text search engine is a priority. Moreover, the P2P application in t

12、he Internet for its convenience, the rapid information exchange, equal nodes is used an extremely wide, according to data released from the telecommunications sector that BT </p><p>  The project's main

13、task is achieved by Windows Search service search and share documents, use windows search API using C # language construct based on Socket programming and multithreading technology of the P2P client and server. </p>

14、;<p>  Key words: P2P; enterprise files sharing; full-text search</p><p><b>  目錄</b></p><p><b>  第一章 緒論1</b></p><p><b>  1.1前言1</b><

15、/p><p>  1.2論文組織結(jié)構(gòu)2</p><p>  第二章 系統(tǒng)概述與相關(guān)技術(shù)4</p><p>  2.1系統(tǒng)概述4</p><p>  2.1.1文件搜索引擎概述4</p><p>  2.1.2P2P概述5</p><p>  2.1.3系統(tǒng)實(shí)現(xiàn)工具概述7<

16、/p><p>  2.2相關(guān)技術(shù)8</p><p>  2.1.1資源預(yù)分配機(jī)制8</p><p>  2.1.2Windows Search 4.010</p><p>  2.1.3Telerik RadControls for WinForms11</p><p><b>  本章小節(jié)14

17、</b></p><p>  第三章 系統(tǒng)分析15</p><p>  3.1系統(tǒng)需求15</p><p>  3.1.1企業(yè)對(duì)于內(nèi)部文件搜索共享系統(tǒng)的需求15</p><p>  3.1.2基于P2P架構(gòu)的搜索共享系統(tǒng)的功能需求15</p><p>  3.2系統(tǒng)設(shè)計(jì)16</p&g

18、t;<p>  3.1.1系統(tǒng)概述16</p><p>  3.1.2系統(tǒng)非功能需求16</p><p>  3.1.3總體設(shè)計(jì)16</p><p>  3.3詳細(xì)設(shè)計(jì)18</p><p>  3.1.1組件、框架與系統(tǒng)模塊18</p><p>  3.1.2模塊通信19</

19、p><p><b>  本章小結(jié)20</b></p><p>  第四章 系統(tǒng)實(shí)現(xiàn)22</p><p>  4.1包設(shè)計(jì)22</p><p>  4.2服務(wù)器的實(shí)現(xiàn):25</p><p>  4.1.1模塊一:搜索服務(wù)模塊:29</p><p>  4.1.2

20、模塊二:搜索請(qǐng)求模塊32</p><p>  4.1.3模塊三:搜索狀態(tài)模塊36</p><p>  4.1.4請(qǐng)求池與響應(yīng)池36</p><p>  4.3客戶端簡(jiǎn)介41</p><p>  4.4Socket池化實(shí)現(xiàn)46</p><p>  4.5實(shí)體對(duì)象序列化48</p>&l

21、t;p><b>  本章小節(jié)50</b></p><p>  第五章 系統(tǒng)測(cè)試及運(yùn)行結(jié)果51</p><p><b>  5.1測(cè)試51</b></p><p><b>  5.2結(jié)果51</b></p><p><b>  文件搜索:51<

22、/b></p><p><b>  文件下載54</b></p><p><b>  本章小結(jié)55</b></p><p>  第六章 展望與總結(jié)56</p><p><b>  6.1 展望56</b></p><p><b>

23、  6.2 總結(jié)56</b></p><p><b>  參考文獻(xiàn)58</b></p><p><b>  致謝59</b></p><p><b>  Contents</b></p><p>  Chapter 1 Preface1</p>

24、<p>  1.1Introduction1</p><p>  1.2The structure of this paper2</p><p>  Chapter 2 System principle and related technologies outline4</p><p>  2.1System working principl

25、e4</p><p>  2.1.1File search enginer working principle4</p><p>  2.1.2P2P working principle5</p><p>  2.1.3System Implemetation working principle7</p><p>  2.2R

26、elated technologies introduce8</p><p>  2.1.1Resource pre-allocation mechanism8</p><p>  2.1.2Windows Search 4.010</p><p>  2.1.3Telerik RadControls for WinForms11</p>

27、<p>  Summary14</p><p>  Chapter 3 System Analysis15</p><p>  3.1System Requirement15</p><p>  3.1.1Requirements of enterprise search system15</p><p>  3.1.

28、2Functional requirements of P2P based system15</p><p>  3.2System Design16</p><p>  3.1.1Introduction of system16</p><p>  3.1.2Non-functional requirements of system16</p

29、><p>  3.1.3Overall design16</p><p>  3.3Detail Design18</p><p>  3.1.1Components, framework and system modules18</p><p>  3.1.2Module Communication19</p>&

30、lt;p>  Summary20</p><p>  Chapter 4 System Implementation22</p><p>  4.1Packet Design22</p><p>  4.2Server implementation:25</p><p>  Module 1: Search service

31、module:29</p><p>  Module 2: The search request module32</p><p>  Module 3: Search state Module36</p><p>  Module 4: Responsepool and RequestPool36</p><p>  4.3Cli

32、ent Profile36</p><p>  4.4 Socket Pooling Implementation46</p><p>  4.5object serialization48</p><p>  Summary50</p><p>  Chapter 5 System testing and running resu

33、lts51</p><p>  5.1System testing51</p><p>  5.2Running results51</p><p>  Summary55</p><p>  Chapter 6 Sumary and Outlook56</p><p>  6.1 Outlook56&

34、lt;/p><p>  6.2 Summary of the paper56</p><p>  References58</p><p><b>  Thanks59</b></p><p><b>  緒論</b></p><p><b>  前言</b

35、></p><p>  互聯(lián)網(wǎng)和搜索引擎已經(jīng)成為現(xiàn)在人生活中不可或缺的一部分。在帶給生活極大方便的同時(shí),互聯(lián)網(wǎng)上龐大冗沓的信息量也使人們?cè)谒褜ぷ约核枭细冻隽溯^大的時(shí)間成本,其中最主要的花費(fèi)就是在浩瀚的搜尋結(jié)果中甄別、挑選的時(shí)間——盡管搜索引擎已經(jīng)在它的能力上最大程度地進(jìn)行了優(yōu)化排序。</p><p>  在調(diào)研中,我們發(fā)現(xiàn),在企業(yè)中,尤其是技術(shù)型企業(yè)、設(shè)計(jì)類企業(yè)、軟件開(kāi)發(fā)和服務(wù)企業(yè)

36、中:橫向?qū)Ρ龋捎诠ぷ鳝h(huán)境和工作項(xiàng)目等的相似性,同一時(shí)期員工的信息獲取關(guān)鍵字和方向重復(fù)度非常高,在同一部門尤甚;縱向?qū)Ρ龋捎谄髽I(yè)的業(yè)務(wù)的相似,不同項(xiàng)目、工程所應(yīng)用的技術(shù)、資料等資源亦可以長(zhǎng)時(shí)間重復(fù)利用。另一方面,員工本身自己在工作中已經(jīng)不自覺(jué)建立和完善的知識(shí)庫(kù)和資源,這些資源往往是已經(jīng)經(jīng)過(guò)篩選甄別的,相比互聯(lián)網(wǎng)上的內(nèi)容,具有更高的價(jià)值和更少的冗余無(wú)用信息,但是同時(shí)又有很大數(shù)量的資源是重復(fù)浪費(fèi)的,員工每一個(gè)人可能在獲取一份相同的資料上都

37、花費(fèi)了不等的時(shí)間。如果能將整個(gè)公司的網(wǎng)絡(luò)資源有效組織,那么不論是員工個(gè)人時(shí)間,還是間接的公司成本,都會(huì)得到極大的節(jié)約和改善。而資料文檔的互通共享也會(huì)使工作效率得到很大程度的提高。</p><p>  目前一些國(guó)內(nèi)外的企業(yè)已經(jīng)意識(shí)到這些問(wèn)題,而快速增長(zhǎng)的企業(yè)搜索市場(chǎng)吸引了Google、IBM、微軟等軟件巨頭的注意,未來(lái)搜索技術(shù)將進(jìn)入每個(gè)應(yīng)用程序的接口中。如推出了Google Search Appliance等本地

38、局域網(wǎng)搜索設(shè)備和軟件,或者提供了搜索API供定制開(kāi)發(fā),還有一些中小型公司提供專業(yè)的私有搜索引擎開(kāi)發(fā)。但是仍然無(wú)法完全解決問(wèn)題:如果應(yīng)用大型公司的技術(shù),成本開(kāi)支過(guò)高,應(yīng)用功能相對(duì)高端卻用不上;應(yīng)用私有技術(shù),卻擔(dān)心技術(shù)支持,隱私等等沒(méi)有保障。通過(guò)統(tǒng)計(jì)和了解,在大部分企業(yè)中,所需要的資源多為word文檔,pdf文件等通用格式,重復(fù)冗余度最高,知識(shí)相關(guān)性最高的也是此類格式。同時(shí)在極大多數(shù)企業(yè)里,使用率最高的是Windows操作系統(tǒng),而自Wind

39、ows Vista開(kāi)始,便內(nèi)置了Window Search,在Windows XP中,也可以方便地安裝應(yīng)用,并由微軟公司提供相關(guān)支持。</p><p>  針對(duì)上述問(wèn)題和特點(diǎn),我的畢業(yè)設(shè)計(jì)選擇了基于Windows Search API的二次開(kāi)發(fā),它兼二者優(yōu)勢(shì),成本較低,應(yīng)用方便簡(jiǎn)約,同時(shí)應(yīng)用了P2P架構(gòu),在作為資源獲取者的同時(shí)也成為資源貢獻(xiàn)者。并將其本機(jī)的簡(jiǎn)單搜索功能擴(kuò)展化,網(wǎng)絡(luò)化,使搜索局域網(wǎng)內(nèi)文件如同搜索本機(jī)

40、一樣迅速高效,最終實(shí)現(xiàn)了公司網(wǎng)絡(luò)內(nèi)的資源共享流通。將客戶機(jī)的索引文件匯入網(wǎng)絡(luò)搜索,并將最終索引存儲(chǔ)到內(nèi)部服務(wù)器,形成網(wǎng)絡(luò)自己的索引。在界面上提供了全文搜索,常用擴(kuò)展名搜索下載等基本服務(wù),同時(shí)在后臺(tái)可以響應(yīng)多種高級(jí)搜索指令以便專業(yè)用戶使用,簡(jiǎn)約而功能卓越。系統(tǒng)在設(shè)計(jì)時(shí)便預(yù)留足夠的空間可以擴(kuò)展升級(jí)以及定制,在不同的公司和網(wǎng)絡(luò)間可以方便地進(jìn)行復(fù)用。</p><p><b>  本系統(tǒng)的設(shè)計(jì)目標(biāo):</b&

41、gt;</p><p><b>  提高搜索質(zhì)量</b></p><p>  1994年,有人認(rèn)為一個(gè)完整的索引將會(huì)使得搜索變得十分簡(jiǎn)單。然而,隨著的計(jì)算科學(xué)技術(shù)的迅速發(fā)展,事實(shí)證明查全率并不是評(píng)價(jià)搜索質(zhì)量的唯一因數(shù)。大量的“無(wú)效的”結(jié)果常常沖掉用戶真正感興趣的結(jié)果。并且,人們?nèi)匀恢辉敢獠炜唇Y(jié)果中的前十幾個(gè)。因此,伴隨的文件系統(tǒng)的龐大,我們需要的極高的查詢準(zhǔn)確度。事實(shí)

42、上,我們希望只返回那些最“最優(yōu)秀”的文檔,而不是數(shù)以百計(jì)的相關(guān)性很小的文檔。</p><p>  極高的查詢準(zhǔn)確度對(duì)于查詢之后的文件訪問(wèn)也有重大的意義,用戶不必訪問(wèn)大量的結(jié)果來(lái)找出所需的內(nèi)容。搜索結(jié)果的顯示提供了相關(guān)性判斷的很好的依據(jù)。</p><p><b>  給搜索結(jié)果排序</b></p><p>  文件信息是一種很重要的資源,但是沒(méi)有

43、被文件搜索引擎很好的利用。根據(jù)關(guān)鍵字出現(xiàn)頻率、文件訪問(wèn)頻率等對(duì)文件進(jìn)行分類排序,這就使其很好的與人的主觀判斷相符合。</p><p><b>  論文組織結(jié)構(gòu)</b></p><p>  本論文共六章,論文首先對(duì)企業(yè)資源重復(fù)冗余,員工重復(fù)相同的資源收集工作的現(xiàn)狀進(jìn)行了描述,分析了其原因,以及現(xiàn)有的解決方案,介紹了畢業(yè)設(shè)計(jì)項(xiàng)目的背景和意義。緊接著論文簡(jiǎn)單概述了畢業(yè)設(shè)計(jì)項(xiàng)

44、目中所用到的各項(xiàng)技術(shù)和原理,對(duì)用戶的需求和系統(tǒng)的總體設(shè)計(jì)進(jìn)行整體的分析和概括。然后文章詳細(xì)地介紹了開(kāi)發(fā)模塊和系統(tǒng)實(shí)現(xiàn)。在連接方面使用SOCKET和線程池進(jìn)行文件搜索和傳輸,并實(shí)現(xiàn)P2P;在UI方面使用RAD CONTROL進(jìn)行設(shè)計(jì),使用戶操作體驗(yàn)得到很大的提升。由于是基于Windows編程,我們選擇了C#語(yǔ)言和Visual Studio和Windows 7作為開(kāi)發(fā)環(huán)境。同時(shí)為了提高開(kāi)發(fā)效率和做好時(shí)間管理,我們使用了SCRUM方法來(lái)進(jìn)行敏

45、捷開(kāi)發(fā)。</p><p><b>  安排如下:</b></p><p>  第一章 緒論。介紹了知識(shí)型企業(yè)在發(fā)展和生產(chǎn)過(guò)程中,資源共享和知識(shí)交流的困難提出局域文件搜索系統(tǒng)的設(shè)計(jì)背景和目標(biāo)。</p><p>  第二章 系統(tǒng)概述和相關(guān)技術(shù)。簡(jiǎn)要介紹了文件搜索引擎基本組成部分,P2P技術(shù),以及開(kāi)發(fā)高效率服務(wù)器所需的資源預(yù)分配機(jī)制,Windows

46、Search 4.0特性等</p><p>  第三章 系統(tǒng)分析。針對(duì)用戶的共享文件資源,知識(shí)的需求,確定此系統(tǒng)的實(shí)現(xiàn)目標(biāo)。此系統(tǒng)的總體設(shè)計(jì)和詳細(xì)設(shè)計(jì),包括系統(tǒng)框架,模塊及其通信的介紹。</p><p>  第四章 系統(tǒng)實(shí)現(xiàn)。介紹了此系統(tǒng)的總體實(shí)現(xiàn)框架,主要介紹了服務(wù)器部分的開(kāi)發(fā)。</p><p>  第五章 系統(tǒng)測(cè)試和運(yùn)行結(jié)果。</p><p

47、>  第六章 展望和總結(jié)。</p><p><b>  系統(tǒng)概述與相關(guān)技術(shù)</b></p><p><b>  系統(tǒng)概述</b></p><p><b>  文件搜索引擎概述</b></p><p>  文件搜索引擎(File Search Engine)是指根據(jù)一定的策

48、略、運(yùn)用特定程序搜集計(jì)算機(jī)上的文件信息,在對(duì)信息進(jìn)行組織和處理后,并將處理后的信息顯示給用戶,是為用戶提供檢索服務(wù)的系統(tǒng)。</p><p>  文件搜索引警通常由4個(gè)部分組成:搜索器,索引器,檢索器,用戶接口</p><p><b>  搜索器:</b></p><p>  搜索器的功能是當(dāng)計(jì)算機(jī)處于空閑時(shí)自動(dòng)啟動(dòng),或人為手動(dòng)啟動(dòng)發(fā)現(xiàn)和搜索文件

49、信息。它盡可能多、盡可能快地搜索各種類型的新信息,同時(shí)因?yàn)槟承┯?jì)算機(jī)上的文件更新很快,所以還要定期更新已經(jīng)搜集過(guò)的舊信息,以避免無(wú)效信息的存在(如文件已被刪除,或文件名更改)。并且由于在本地機(jī)器上搜索數(shù)據(jù)可以以非常快的速度進(jìn)行,因此,能夠以多種搜索策略進(jìn)行文件搜索。</p><p><b>  索引器:</b></p><p>  索引器的功能是理解搜索器所搜索的信息

50、,從中取出索引項(xiàng),用于表示文檔及生成文檔庫(kù)的索引表。</p><p>  目前,在本系統(tǒng)中進(jìn)行局域網(wǎng)文件搜索最重要的技術(shù)是分布式、并行搜索技術(shù),達(dá)到搜索結(jié)果可在多臺(tái)機(jī)器上同時(shí)獲取,以提高文件信息發(fā)現(xiàn)與獲取速度。</p><p>  索引項(xiàng)有客觀索引項(xiàng)與內(nèi)容索引項(xiàng)兩種:客觀項(xiàng)與文檔的語(yǔ)意內(nèi)無(wú)關(guān),如作者名、更新時(shí)間、編碼、文件長(zhǎng)度、最近訪問(wèn)時(shí)間、讀寫屬性、隱藏屬性等;內(nèi)容索引項(xiàng)是用來(lái)反映文檔內(nèi)

51、容的,如關(guān)鍵字及其出現(xiàn)頻率、短語(yǔ)、單字等。且內(nèi)容索引項(xiàng)只可以分為單索引項(xiàng)和多索引項(xiàng)兩種。單索引項(xiàng)對(duì)于英語(yǔ)來(lái)說(shuō)是英語(yǔ)單詞,容易提取,這是因?yàn)閱卧~之間存在空格是天然的分隔符;對(duì)于中文等連續(xù)書寫的語(yǔ)言,必須進(jìn)行詞語(yǔ)的拆分。</p><p>  在文件搜索引擎中,一般要給單索引項(xiàng)賦予一個(gè)權(quán)值,以表示該索引項(xiàng)對(duì)文檔的區(qū)分度,同時(shí)用來(lái)計(jì)算查詢結(jié)果的相關(guān)度。使用的方法一般有統(tǒng)計(jì)法,信息論法和概率法。多索引項(xiàng)的提取方法有統(tǒng)計(jì)法,

52、概率法和語(yǔ)言學(xué)法。</p><p>  索引表一般使用某種形式的倒排表(Inversion List),即由索引項(xiàng)查找相應(yīng)的文檔。索引表也可能要記錄索引項(xiàng)在文檔中出現(xiàn)的位置,以便檢索器計(jì)算索引項(xiàng)之間的相鄰或接近關(guān)系。</p><p>  索引器可以使用集中式索引算法或分布式索引算法。當(dāng)數(shù)據(jù)量很大時(shí),必須實(shí)現(xiàn)即時(shí)索引(Instant Indexing),否則不能夠跟上信息量急劇增加的速度。索

53、引算法對(duì)索引器的性能(如大規(guī)模峰值查詢時(shí)的響應(yīng)速度)有很大的影響。一個(gè)搜索引擎的有效性在很大程度上取決于索引的質(zhì)量。</p><p><b>  檢索器:</b></p><p>  檢索器的功能是根據(jù)用戶的查詢?cè)谒饕龓?kù)中快速檢出文檔,進(jìn)行文檔與查詢的相關(guān)度評(píng)價(jià),對(duì)將要輸出的結(jié)果進(jìn)行排序,并實(shí)現(xiàn)某種用戶相關(guān)性反饋機(jī)制。</p><p>  檢索

54、器常用的信息檢索模型有集合理模型、代數(shù)模型、概率模型和混合模型4種。</p><p><b>  用戶接口:</b></p><p>  用戶接口的作用是輸入用戶查詢、顯示查詢結(jié)果、提供用戶相關(guān)性反饋機(jī)制。主要的目的是方便用戶使用搜索引擎,高效率、多方式地從搜索引擎中得到有效、及時(shí)的信息。用戶接口的設(shè)計(jì)和實(shí)現(xiàn)使用人機(jī)交互的理論和方法,以充分適應(yīng)人類的思維習(xí)慣。<

55、/p><p>  用戶接口可以分為簡(jiǎn)單接口和復(fù)雜接口兩種:簡(jiǎn)單接口只提供用戶輸入查詢串的文本框;復(fù)雜接口可以讓用戶對(duì)查詢進(jìn)行,如邏輯運(yùn)算(And、Or、Not;+、-)、相近關(guān)系(相鄰、Near)、目錄范圍、出現(xiàn)位置(如文件名、文件內(nèi)容)、信息時(shí)間、長(zhǎng)度等。目前一些公司和機(jī)構(gòu)正在考慮制定查詢選項(xiàng)的標(biāo)準(zhǔn)。</p><p><b>  P2P概述</b></p>

56、<p>  在引言中,我們提到過(guò)“在當(dāng)今的社會(huì)中,我們周圍P2P技術(shù)的應(yīng)用越來(lái)越廣泛, 也可以說(shuō)我們接觸到的軟件中絕大部分是P2P軟件。”,那么什么是P2P技術(shù)?P2P技術(shù)具有什么特點(diǎn)?如何實(shí)現(xiàn)P2P思想?</p><p>  P2P(Peer-to-Peer) 稱為對(duì)等互聯(lián)網(wǎng)絡(luò)技術(shù),一種網(wǎng)絡(luò)新技術(shù),依賴網(wǎng)絡(luò)中參與者的計(jì)算能力和帶寬,而不是把依賴都聚集在較少的幾臺(tái)服務(wù)器上。P2P網(wǎng)絡(luò)通常用于通過(guò)Ad

57、Hoc連接來(lái)連接節(jié)點(diǎn)。這類網(wǎng)絡(luò)可以用于多種用途,各種文件共享軟件已經(jīng)得到了廣泛的使用。P2P技術(shù)也被使用在類似VoIP等實(shí)時(shí)媒體業(yè)務(wù)的數(shù)據(jù)通信中。P2P還是英文Point to Point (點(diǎn)對(duì)點(diǎn))的簡(jiǎn)稱。它是下載術(shù)語(yǔ),意思是在你自己下載的同時(shí),自己的電腦還要繼續(xù)做主機(jī)上傳。</p><p>  純點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)沒(méi)有客戶端或服務(wù)器的概念,只有平等的同級(jí)節(jié)點(diǎn),同時(shí)對(duì)網(wǎng)絡(luò)上的其它節(jié)點(diǎn)充當(dāng)客戶端和服務(wù)器。這種網(wǎng)絡(luò)設(shè)計(jì)模型

58、不同于客戶端-服務(wù)器模型,在客戶端-服務(wù)器模型中通信通常來(lái)往于一個(gè)中央服務(wù)器。</p><p>  有些網(wǎng)絡(luò)(如Napster, OpenNAP, 或IRC @find)的一些功能(比如搜索)使用客戶端-服務(wù)器結(jié)構(gòu),而使用P2P結(jié)構(gòu)來(lái)實(shí)現(xiàn)另外一些功能。類似Gnutella 或Freenet的網(wǎng)絡(luò)則使用純P2P結(jié)構(gòu)來(lái)實(shí)現(xiàn)全部的任務(wù)。</p><p>  一般報(bào)章都稱P2P是點(diǎn)對(duì)點(diǎn)技術(shù),但其實(shí)

59、是錯(cuò)的,實(shí)為解作群對(duì)群(Peer-to-Peer)。在虛擬私人網(wǎng)絡(luò)VPN (Virtual Private Network)中,也有P2P這個(gè)名稱,它才是真正解作點(diǎn)對(duì)點(diǎn)(Point-to-Point)。</p><p>  依據(jù)中央化程度,P2P可以分為三類:純P2P,雜P2P和混合P2P。</p><p>  純P2P——節(jié)點(diǎn)同時(shí)作為客戶端和服務(wù)器端,沒(méi)有中心服務(wù)器,沒(méi)有中心路由器。&l

60、t;/p><p>  雜P2P——有一個(gè)中心服務(wù)器保存節(jié)點(diǎn)的信息并對(duì)請(qǐng)求這些信息的要求做出響應(yīng);節(jié)點(diǎn)負(fù)責(zé)發(fā)布這些信息(中心服務(wù)器并不保存文件),讓中心服務(wù)器知道需要交換的信息,讓節(jié)點(diǎn)下載其需要的資源。</p><p>  混合P2P——介于純P2P和雜P2P之間的。有一定約束,同時(shí)含有純P2P和雜P2P的特點(diǎn)。</p><p>  此系統(tǒng)采用了雜P2P架構(gòu)。當(dāng)某個(gè)Cli

61、ent PC節(jié)點(diǎn)的用戶根據(jù)特定需求試圖搜索與某個(gè)關(guān)鍵字相關(guān)文件時(shí),搜索請(qǐng)求會(huì)首先發(fā)送給Server,Server負(fù)責(zé)轉(zhuǎn)發(fā)給在局域網(wǎng)內(nèi)具有文件搜索功能的Search PC節(jié)點(diǎn)。Search PC節(jié)點(diǎn)一旦接受到搜索請(qǐng)求,就會(huì)立即啟動(dòng)文件搜索服務(wù),在完全文件搜索之后會(huì)將搜索結(jié)果集返回給服務(wù)器。Server再將搜索結(jié)果集封裝成相就應(yīng)的包,依次返回給發(fā)出搜索請(qǐng)求的Client PC節(jié)點(diǎn)。該節(jié)點(diǎn)接收到搜索結(jié)果集后,用戶需要將某些下載或?yàn)g覽某些文件,

62、此時(shí)Client PC 就無(wú)需通過(guò)Server再將文件下載到本地,而是繞過(guò)Server直接與文件所在遠(yuǎn)程Search PC建立Tcp連接來(lái)實(shí)現(xiàn)文件傳輸,獲取該文件。由于文件獲取過(guò)程與Server無(wú)關(guān),因此是屬于雜P2P范疇。</p><p>  圖2.1 系統(tǒng)運(yùn)行原理圖</p><p><b>  系統(tǒng)實(shí)現(xiàn)工具概述</b></p><p> 

63、 有了系統(tǒng)的架構(gòu)和運(yùn)行原理,就可以選擇一種合適的編程語(yǔ)言去實(shí)現(xiàn)它。C#是微軟公司發(fā)布的一種面向?qū)ο蟮摹⑦\(yùn)行于.NET Framework之上的高級(jí)程序設(shè)計(jì)語(yǔ)言。作為微軟新一代Visual Studio開(kāi)發(fā)平臺(tái)的首選語(yǔ)言,綜合了VB簡(jiǎn)單的可視化操作和C++的高運(yùn)行效率,與COM是直接集成的,具有強(qiáng)大的操作能力、優(yōu)雅的語(yǔ)法風(fēng)格、創(chuàng)新的語(yǔ)言特性和便捷的面向組件編程的支持??梢杂肅#編寫出安全的、穩(wěn)定的、簡(jiǎn)單的、優(yōu)雅的程序。因此,選擇了C#作為

64、開(kāi)發(fā)語(yǔ)言。</p><p>  此系統(tǒng)是典型的多線程應(yīng)用程序,其服務(wù)器結(jié)果類似現(xiàn)今相當(dāng)流行的游戲服務(wù)器設(shè)計(jì)方式,很好的解決了并發(fā)互斥等問(wèn)題,具有很好的穩(wěn)定性。另一方面,借助于windows search SDK 提供了.NET平臺(tái)下的dll庫(kù),在C#下操作windows search API更加方便。</p><p>  微軟公司的Windows Search組件為我們實(shí)現(xiàn)本機(jī)搜索提供了可

65、能,利用windows search API,我們可以通過(guò)編程實(shí)現(xiàn)本地文件全文搜索。Windows 7 操作系統(tǒng),更是自帶了Windows Search 服務(wù),這讓我們的系統(tǒng)隨著Windows 7操作系統(tǒng)的普及而容易被兼容。</p><p><b>  相關(guān)技術(shù)</b></p><p>  在設(shè)計(jì)階段,局域網(wǎng)絡(luò)文件搜索服務(wù)器就得設(shè)計(jì)成為能同時(shí)為大量客戶服務(wù),這就要求服

66、務(wù)器具有很高的穩(wěn)定性,同時(shí)能夠及時(shí)響應(yīng)客戶請(qǐng)求,性能的提高依賴服務(wù)器數(shù)據(jù)處理的每一個(gè)環(huán)節(jié),而通信部分位于體系底層,顯得愈為重要。系統(tǒng)資源的分配方式、Socket的管理、I/O模式的選擇、并發(fā)服務(wù)以及負(fù)載均衡策略等都直接影響到通信的效率,以下將著重討論資源分配技術(shù)。</p><p><b>  資源預(yù)分配機(jī)制</b></p><p><b>  資源分配機(jī)制的

67、比較</b></p><p>  服務(wù)器在接受大量客戶連接請(qǐng)求的同時(shí),需要頻繁地向系統(tǒng)申請(qǐng)資源,如系統(tǒng)內(nèi)存申請(qǐng)接收緩沖區(qū)和發(fā)送緩沖區(qū),申請(qǐng)線程處理業(yè)務(wù)邏輯,申請(qǐng)I/O對(duì)數(shù)據(jù)收發(fā)進(jìn)行投遞等。如下圖所示,操作系統(tǒng)在處理應(yīng)用程序的這些請(qǐng)求時(shí),不斷地創(chuàng)建資源供應(yīng)用程序使用,在應(yīng)用程序釋放資源后執(zhí)行銷毀和回收操作。</p><p>  圖2.2 資源“即時(shí)創(chuàng)建,即時(shí)銷毀”的分配式<

68、/p><p>  這種“即時(shí)創(chuàng)建,即時(shí)銷毀”的資源分配方式,存在以下缺陷:</p><p>  系統(tǒng)輔助資源的過(guò)量消耗。由于服務(wù)器長(zhǎng)時(shí)間運(yùn)行,頻繁的創(chuàng)建銷毀操作會(huì)給系統(tǒng)增加很多額外的資源消耗,如系統(tǒng)需要登記零碎的資源片段。</p><p>  系統(tǒng)的性能下降。創(chuàng)建銷毀操作造成系統(tǒng)資源的巨大開(kāi)銷,而這些開(kāi)銷與業(yè)務(wù)邏輯無(wú)關(guān),導(dǎo)致業(yè)務(wù)邏輯的處理相對(duì)延遲。</p>

69、<p>  針對(duì)這種情況,采用資源預(yù)分配機(jī)制可以彌補(bǔ)這些缺陷。預(yù)先建立一些資源對(duì)象中以備使用,當(dāng)一個(gè)客戶訪問(wèn)一種指定類型的資源時(shí),服務(wù)器不是簡(jiǎn)單的分配給新的資源而是從池中取得已經(jīng)實(shí)例化的資源對(duì)象為它服務(wù),從而實(shí)現(xiàn)對(duì)象進(jìn)行復(fù)用以提高系統(tǒng)性能。從結(jié)構(gòu)上看,具有容器對(duì)象和具體的元素對(duì)象。使用方法上看,可以直接取得池中的元素來(lái)用,也可以把要做的任務(wù)交給它處理。</p><p>  圖2.3 資源預(yù)分配技術(shù)&l

70、t;/p><p>  預(yù)分配機(jī)制——池化技術(shù)</p><p>  應(yīng)用池化技術(shù)原因:在不使用池化技術(shù)的并發(fā)請(qǐng)求環(huán)境中,需要為每個(gè)請(qǐng)求重新申請(qǐng)分配資源,如:內(nèi)存,I/O,等,頻繁申請(qǐng)資源,釋放資源造成系統(tǒng)資源的浪費(fèi),而這些資源本身可被多個(gè)請(qǐng)求重復(fù)使用。為了解決系統(tǒng)資源不必要浪費(fèi)的問(wèn)題,引入池化技術(shù),實(shí)現(xiàn)資源多次利用,從而提高系統(tǒng)性能,節(jié)約系統(tǒng)資源</p><p><

71、b>  池化技術(shù)原理:</b></p><p>  1、池中有空閑隊(duì)列與繁忙列表兩個(gè)集合,任何池中對(duì)象都存儲(chǔ)且僅存儲(chǔ)于其中一個(gè)集合。</p><p>  2、在建立池時(shí),可初使化0至多個(gè)對(duì)象。</p><p>  3、當(dāng)有請(qǐng)求到來(lái)時(shí),就從空閑隊(duì)列中彈出一個(gè)對(duì)象為當(dāng)前請(qǐng)求服務(wù),若空閑隊(duì)列中無(wú)空閑對(duì)象,則才開(kāi)始向系統(tǒng)申請(qǐng)分配資源,再將當(dāng)前被使用的對(duì)象存

72、入繁忙列表中。</p><p>  4、當(dāng)對(duì)某個(gè)請(qǐng)求的服務(wù)結(jié)束,就將所擁有的資源對(duì)象從繁忙列表中取出,壓入空閑隊(duì)列,等待再次利用。</p><p>  注:在向空閑隊(duì)列請(qǐng)求釋放資源或向繁忙列表存取資源時(shí),要解決多個(gè)請(qǐng)求并發(fā)互斥。</p><p>  池化技術(shù)實(shí)現(xiàn):線程池、Socket池、I/O池、Object池</p><p>  在這里僅介

73、紹線程池和Socket池,另外兩個(gè)實(shí)現(xiàn)類似:</p><p>  線程池:對(duì)于多線程編程,在C#中提供了System.Threading 名字空間下的Thread類,通常一次使用一個(gè)線程,來(lái)創(chuàng)建和刪除線程。然而以這種方式建立和刪除線程是很昂貴的(CPU密集型)。所以CLR內(nèi)置了一個(gè)線程池,供應(yīng)用程序使用。這個(gè)線程池可以通過(guò)ThreadPool類訪問(wèn)。ThreadPool類會(huì)在線程的托管池中重用已有的線程。使用完線

74、程后,線程就會(huì)返回線程池,供以后使用。ThreadPool有25個(gè)可用的線程(每個(gè)處理器)。應(yīng)用線程池最重要的需要考慮的問(wèn)題:要以最簡(jiǎn)單的方式創(chuàng)建和刪除線程;應(yīng)用程序使用線程的性能要優(yōu)先考慮。相反,如果需要控制所創(chuàng)建線程的優(yōu)先級(jí),希望所使用的線程維護(hù)其標(biāo)識(shí),該標(biāo)識(shí)要與線程一起進(jìn)行各種操作,經(jīng)過(guò)許多不同時(shí)間段,所使用線程壽命較長(zhǎng)等情況下就得使用Thread而不是ThreadPool。</p><p>  Socke

75、t池具體實(shí)現(xiàn):見(jiàn) 第四章:系統(tǒng)實(shí)現(xiàn)</p><p>  Windows Search 4.0</p><p>  使用Windows Search 4.0可以對(duì)計(jì)算機(jī)執(zhí)行快速搜索。Windows Search 4.0可以幫助查找和預(yù)覽計(jì)算機(jī)上的文檔、電子郵件、音樂(lè)文件、照片和其他項(xiàng)目。Windows Search 4.0中的搜索引擎是一項(xiàng)Microsoft Windows服務(wù),可以使用此搜

76、索引擎為程序的內(nèi)容編制索引;可以使用它獲得即時(shí)結(jié)果。</p><p>  Windows 桌面搜索非常簡(jiǎn)單。它可以通過(guò)可擴(kuò)展性機(jī)制將您的所有文檔、文件和電子郵件消息以及提供給它的任何其他數(shù)據(jù)編入索引。隨著新項(xiàng)目的添加以及對(duì)現(xiàn)有項(xiàng)目的修改,它們會(huì)重新編入索引。您可以通過(guò) UI 在編入索引的項(xiàng)目中搜索字符串和關(guān)鍵字,并使用相關(guān)聯(lián)的應(yīng)用程序打開(kāi)任何找到的項(xiàng)目。</p><p>  Windows

77、桌面搜索提供一個(gè)SDK,它允許其他應(yīng)用程序使用其索引和搜索功能。使用Windows Search SDK編寫程序,需要在Windows 7下。Windows 7 SDK已經(jīng)包含了Windows Search 3x SDK。Windows Search 3x SDK的目錄結(jié)構(gòu)如下</p><p>  圖2.4 Windows Search SDK 目錄結(jié)構(gòu)</p><p>  Teleri

78、k RadControls for WinForms </p><p>  Telerik RadControls for WinForms 是一款處于行業(yè)領(lǐng)先地位的.NET程序UI控件,包含了30多個(gè)強(qiáng)大的UI和數(shù)據(jù)控件;包含透明度、比例縮放和旋轉(zhuǎn)的調(diào)節(jié)特性。它提供了全面的UI功能、最完整的UI架構(gòu)示例、以及最好的在線技術(shù)支持。包含Windows Forms 和 ASP.NET兩個(gè)方面的服務(wù)。使用該UI控件,開(kāi)

79、發(fā)者能夠容易地實(shí)現(xiàn)高級(jí)的UI展示,大幅提高應(yīng)用程序界面的美觀性。</p><p>  使用Telerik RadControls進(jìn)行開(kāi)發(fā),具有如下特征:</p><p>  (1) Telerik展示框架 - 利用高級(jí)的Telerik展示框架,可以很容易地獲取所需要的控件并編寫代碼。Telerik展示框架(TPF)是RadControls套包中所有控制的基本結(jié)構(gòu)。它為遵循WPF實(shí)踐的套包內(nèi)

80、的控制提供了完整地可定制的結(jié)構(gòu)。支持動(dòng)畫效果、透明度、輪顯以及尺寸調(diào)節(jié)。</p><p>  圖2.5 Telerik 展示框架</p><p>  (2) 完整的控件列表 – 大量的不同控件類型的分類,包括:標(biāo)準(zhǔn)類型(Bar,Button,Label等)和許多組合類型(Chart,GridView,PanelBar等)。</p><p>  圖2.6 各種UI控件

81、</p><p>  (3) 多種風(fēng)格的設(shè)計(jì)時(shí)支持??丶L(fēng)格能夠在設(shè)計(jì)時(shí)設(shè)定來(lái)代替編寫運(yùn)行時(shí)代碼。</p><p>  (4) 主體風(fēng)格配置文件化。RadControls控件的主題風(fēng)格是以XML文件形式保存的,更改和獲取控件風(fēng)格都很方便。</p><p>  (5) 提供完備的支持資料。Telerik RadControls為程序員提供了完備的開(kāi)發(fā)文檔和使用實(shí)例。使

82、用Telerik RadControls開(kāi)發(fā)相當(dāng)?shù)姆奖恪?lt;/p><p>  圖2.7 Telerik RadControls網(wǎng)站幫助</p><p><b>  本章小節(jié)</b></p><p>  本章主要包含文件搜索引擎,P2P概述,系統(tǒng)實(shí)現(xiàn)工具等系統(tǒng)概述,以及資源預(yù)分配機(jī)制,池化技術(shù),Windows Search 4.0,和Teler

83、ik RadControl等與此系統(tǒng)開(kāi)發(fā)的相關(guān)技</p><p>  首先,介紹了文件搜索引擎的基本組件,如搜索器,索引器,檢索器,用戶接口。概述P2P架構(gòu),簡(jiǎn)單介紹了目前存在的三種形式:純P2P、雜P2P和混合P2P。針對(duì)知識(shí)型企業(yè)內(nèi)部知識(shí)共享的處理方法,并提出了我們的解決架構(gòu),闡述了此系統(tǒng)運(yùn)行原理。</p><p>  接著我們描述了系統(tǒng)的實(shí)現(xiàn)方法,以C#作為開(kāi)發(fā)語(yǔ)言,以Windows

84、 Search 4.0為搜索引擎實(shí)現(xiàn)文檔在企業(yè)內(nèi)部局域網(wǎng)的共享。</p><p><b>  系統(tǒng)分析</b></p><p><b>  系統(tǒng)需求</b></p><p>  企業(yè)對(duì)于內(nèi)部文件搜索共享系統(tǒng)的需求</p><p>  在工程企業(yè)或者知識(shí)型企業(yè)中,往往需要員工在工作的同時(shí)不停對(duì)項(xiàng)目或者

85、技術(shù)進(jìn)行學(xué)習(xí)。在學(xué)習(xí)的過(guò)程中,員工一般會(huì)將經(jīng)過(guò)篩選的,有價(jià)值的,有意義的文檔、工具保留,在無(wú)形中就形成了對(duì)于某項(xiàng)目或者技術(shù)的知識(shí)庫(kù)。但是由于隱私和網(wǎng)絡(luò)原因,往往他們獲取的有意義的資源無(wú)法及時(shí)共享或者共享度極低,使得大量的時(shí)間重復(fù)使用在資源搜集的過(guò)程中,而這些資源往往都是可復(fù)用的。因此,企業(yè)急需一種資源共享軟件系統(tǒng),既可以有效共享同事間的資源,又有效的屏蔽了互聯(lián)網(wǎng)上無(wú)關(guān)信息的干擾,提高了搜索準(zhǔn)確度。同時(shí),還要求軟件的茁壯性,安全性有很高的

86、保障。</p><p>  基于P2P架構(gòu)的搜索共享系統(tǒng)的功能需求</p><p>  本系統(tǒng)為企業(yè)局域網(wǎng)用戶提供了一個(gè)資源、文件搜索共享的P2P平臺(tái),用戶可以通過(guò)系統(tǒng)高效率地進(jìn)行各種資源的搜索。</p><p><b>  客戶端功能需求</b></p><p>  1.各類型文件的搜索</p><

87、p>  2.本地和遠(yuǎn)程的搜索</p><p>  3.搜索后的結(jié)果可下載</p><p>  4.提供簡(jiǎn)約界面和高級(jí)命令搜索功能</p><p>  5.響應(yīng)搜索請(qǐng)求并返回結(jié)果(P2P)</p><p><b>  服務(wù)器端功能需求</b></p><p>  1.接收客戶搜索請(qǐng)求并轉(zhuǎn)發(fā)&l

88、t;/p><p>  2.接收搜索請(qǐng)求返回結(jié)果并在數(shù)據(jù)庫(kù)中建立自身索引</p><p>  3.將返回結(jié)果發(fā)送至請(qǐng)求端</p><p>  4.在服務(wù)器索引內(nèi)有對(duì)應(yīng)請(qǐng)求的則優(yōu)先返回索引內(nèi)結(jié)果</p><p><b>  系統(tǒng)設(shè)計(jì)</b></p><p><b>  系統(tǒng)概述</b>

89、;</p><p>  上面我們介紹了企業(yè)級(jí)搜索系統(tǒng)的功能需求,了解了系統(tǒng)需要完成的任務(wù)。為了更好的更加直觀的讓企業(yè)員工分享企業(yè)里的知識(shí)庫(kù),為員工的知識(shí)獲取提供支持,我們構(gòu)建了UI友好的企業(yè)級(jí)搜索系統(tǒng)。是以結(jié)構(gòu)化查詢和全文搜索技術(shù)結(jié)合的方式,為企業(yè)員工提供更加智能、高效、準(zhǔn)確的檢索服務(wù)和下載服務(wù)。</p><p>  搜索系統(tǒng)不但能搜索網(wǎng)頁(yè)內(nèi)容,而且能搜索各種文本、HTML、OFFICE文

90、檔、PDF等文件系統(tǒng),以及散布在企業(yè)各個(gè)角落的郵件、圖片等非結(jié)構(gòu)化數(shù)據(jù),提供全面的企業(yè)信息搜索應(yīng)用。</p><p>  系統(tǒng)采用多線程并發(fā)搜索技術(shù),智能分配線程數(shù)目,實(shí)現(xiàn)多線程并發(fā)搜索,大大提高信息獲取速度。同時(shí),結(jié)合分布式技術(shù)和Cache緩沖技術(shù),各個(gè)節(jié)點(diǎn)上的搜索任務(wù)由節(jié)點(diǎn)完成,從而提高信息采集效率。</p><p>  采用相關(guān)性算法對(duì)文檔進(jìn)行排序,保證檢索相關(guān)性最高的頁(yè)面放在最前面

91、。</p><p><b>  系統(tǒng)非功能需求</b></p><p>  1.系統(tǒng)應(yīng)當(dāng)同時(shí)具有結(jié)構(gòu)化數(shù)據(jù)檢索以及全文檢索能力</p><p>  2.具有較好的查詢時(shí)間性能;</p><p>  3.具有盡可能高的全文檢索召回率與準(zhǔn)確率;</p><p>  4.盡量保證用戶期望的查詢結(jié)果排在整

92、個(gè)結(jié)果集的前部;</p><p>  5.能夠通過(guò)系統(tǒng)運(yùn)行中積累的數(shù)據(jù)自動(dòng)改善檢索質(zhì)量和效率;</p><p>  6.具有形式簡(jiǎn)潔、容易使用并且高效的查詢條件輸入界面;</p><p>  7.具有便于使用、針對(duì)領(lǐng)域特點(diǎn)的查詢語(yǔ)法;</p><p>  8.系統(tǒng)的主要方面應(yīng)當(dāng)易于擴(kuò)展以適應(yīng)需求變更。</p><p>

93、<b>  總體設(shè)計(jì)</b></p><p><b>  搜索部分</b></p><p>  系統(tǒng)的總體設(shè)計(jì)建立在系統(tǒng)的功能需求和非功能需求的基礎(chǔ)上。在整個(gè)系統(tǒng)中,提供2種搜索方式:本地搜索和局域網(wǎng)搜索。</p><p>  本地搜索:即檢索本地機(jī)器上的文檔,直接調(diào)用window search服務(wù),根據(jù)用戶輸入的參數(shù)信息

94、進(jìn)搜索</p><p><b>  圖3.1 本地搜索</b></p><p>  由于本地搜索速度最快,搜索方式簡(jiǎn)單,對(duì)搜索結(jié)果的處理等方面都非常容易。需要解決的問(wèn)題:在對(duì)windows search 服務(wù)的調(diào)用時(shí),必須對(duì)用戶進(jìn)行文檔搜索時(shí)的輸入數(shù)據(jù)進(jìn)行規(guī)格化。而本地搜索相當(dāng)于局域網(wǎng)文檔搜索的附加模塊的,對(duì)其搜索過(guò)程不作過(guò)多介紹。</p><p&

95、gt;  局域網(wǎng)文檔搜索:用戶根據(jù)需求輸入關(guān)鍵字對(duì)局域網(wǎng)內(nèi)的PC進(jìn)行文檔搜索</p><p><b>  算法思想:</b></p><p>  用戶輸入搜索關(guān)鍵字,規(guī)格化后經(jīng)Client App發(fā)送給Server</p><p>  Server對(duì)每個(gè)關(guān)鍵字進(jìn)行處理(執(zhí)行搜索、搜索頻度,查找數(shù)據(jù)庫(kù)等)后,輪詢發(fā)送給局域網(wǎng)內(nèi)具有搜索功能的PC&

96、lt;/p><p>  當(dāng)搜索完成時(shí),Search PC就將搜索結(jié)果封裝成結(jié)果項(xiàng)返回給Server</p><p>  Server將搜索結(jié)果存儲(chǔ)入數(shù)據(jù)庫(kù),并發(fā)送給Client</p><p>  Client接收到搜索結(jié)果并保存搜索記錄,顯示,完成全部搜索</p><p>  圖3.2 局域文檔搜索</p><p>&l

97、t;b>  文檔下載與瀏覽:</b></p><p>  用戶進(jìn)行局域網(wǎng)文檔搜索之后,常需獲取或?yàn)g覽其他PC上的文檔,以達(dá)到用戶進(jìn)行搜索的最終目的。在本系統(tǒng)中,無(wú)論是獲取文檔還是瀏覽文檔都必然要求提供文件傳輸服務(wù)。其中,文件瀏覽需要文件傳輸服務(wù)原因在于非本地文件,如果用戶要訪問(wèn),不可能直接打開(kāi)遠(yuǎn)程PC上的文件,此時(shí),就得把文件下載到本地PC上,再在臨時(shí)文件夾內(nèi)打開(kāi)相應(yīng)文件。</p>

98、<p>  在本系統(tǒng)文件傳服務(wù),基于C/S架構(gòu),在文件傳輸請(qǐng)求方,即接收方發(fā)起Tcp連接。文件傳輸響應(yīng)方,即發(fā)送方要幀聽(tīng)文件傳輸請(qǐng)求。在文件發(fā)送方,建立文件流,與網(wǎng)絡(luò)流,再把文件流接向網(wǎng)絡(luò)流,與此同時(shí),在文件的接收方,建立網(wǎng)流與文件流,把網(wǎng)絡(luò)流接向文件流。</p><p>  文件傳輸服務(wù)繞過(guò)Server,Client pc 直接與 Search PC連接 實(shí)現(xiàn)文件傳輸。</p><

99、;p><b>  詳細(xì)設(shè)計(jì)</b></p><p>  組件、框架與系統(tǒng)模塊</p><p>  系統(tǒng)由3個(gè)邏輯層構(gòu)成:用戶顯示層,邏輯業(yè)務(wù)層,數(shù)據(jù)訪問(wèn)層;分為2個(gè)模塊:服務(wù)器,客戶端;</p><p><b>  邏輯分層:</b></p><p>  UI層(USL):用于接收BLL回送的

100、數(shù)據(jù),用戶輸入命令或數(shù)據(jù),以及顯示,方便用戶使用整個(gè)系統(tǒng)。主要表成WinForm(RadControl)方式,依賴于BLL。</p><p>  邏輯業(yè)務(wù)層(BLL): 針對(duì)該系統(tǒng)的邏輯實(shí)現(xiàn),對(duì)數(shù)據(jù)層的操作,接收表示層的數(shù)據(jù)與命令進(jìn)行業(yè)務(wù)邏輯處理。USL,DAL似為積木,那BLL就是對(duì)這些積木的搭建。主要表示成應(yīng)用程序(相關(guān)算法,網(wǎng)絡(luò)通信,多線程,信息包定制)方式,服務(wù)于USL,依賴于DAL。</p>

101、<p>  數(shù)據(jù)訪問(wèn)層(DAL):用于接收,提供BLL的數(shù)據(jù),其本身不是數(shù)據(jù)庫(kù),而是對(duì)數(shù)據(jù)的操作和組織管理。主要表示成數(shù)據(jù)I/O,服務(wù)于BLL</p><p><b>  圖3.3 邏輯分層</b></p><p>  模塊劃分:由服務(wù)器端與客戶端兩個(gè)部分構(gòu)成</p><p>  服務(wù)器:由3個(gè)部分構(gòu)成:1、搜索服務(wù)模塊;2、搜索

102、請(qǐng)求模塊;3、搜索狀態(tài)模塊</p><p>  客戶端:由3個(gè)部分構(gòu)成:1、文件搜索服務(wù),對(duì)本地文件進(jìn)行搜索;2、文件傳輸服務(wù),用戶對(duì)文件進(jìn)行下載、瀏覽;3搜索請(qǐng)求服務(wù),發(fā)送用戶的搜索請(qǐng)求和接收來(lái)自服務(wù)器的搜索結(jié)果</p><p><b>  模塊通信</b></p><p>  此系統(tǒng)采用雜P2P結(jié)構(gòu),Client啟動(dòng)時(shí)提供搜索服務(wù)的模塊就主

103、動(dòng)發(fā)起與服務(wù)器的Tcp連接,并且以INF包形式將配置信息發(fā)送給Server,使Server將其識(shí)別為Search PC。若用戶搜索局域網(wǎng)內(nèi)文件的需要,通過(guò)Client App將搜索請(qǐng)求封裝成REQ包發(fā)送給Server,與此同時(shí),Server若在resultDB中存在相應(yīng)的搜索結(jié)果,就將所有相關(guān)記錄封裝成DBS包發(fā)送給Client,在收到ACK包后完成整個(gè)搜索。反之,數(shù)據(jù)庫(kù)中不存在相關(guān)記錄,就轉(zhuǎn)發(fā)REQ包給各個(gè)Search PC</

104、p><p>  Search PC完成搜索后,將搜索結(jié)果封成RES包返回Server,相應(yīng)的Server首先發(fā)送參予搜索的Search PC列表,再將RES中的搜索結(jié)果寫入數(shù)據(jù)庫(kù)再將RES包轉(zhuǎn)發(fā)給此次搜索的請(qǐng)求方用戶,直到將所有Search PC上的結(jié)果全發(fā)送給Client,接收到ACK包后,完成全部搜索。</p><p>  圖3.4 模塊通信圖</p><p>&l

105、t;b>  本章小結(jié)</b></p><p>  本章結(jié)合企業(yè)內(nèi)部文件共享的迫切需求和搜索系統(tǒng)的基本任務(wù),提出了該系統(tǒng)的功能性需求和非功能性需求,并據(jù)此介紹了系統(tǒng)的總體設(shè)計(jì)。然后就系統(tǒng)的架構(gòu)和C/S信息的交互展開(kāi)了詳細(xì)的分析和總體實(shí)現(xiàn)。</p><p>  首先,我們分析了企業(yè)內(nèi)部資源不能有效共享的現(xiàn)狀,提出了企業(yè)對(duì)資源共享軟件系統(tǒng)的需求。</p><

106、p>  其次,我們列舉出了系統(tǒng)的功能性需求。除了實(shí)現(xiàn)搜索的基本功能外,應(yīng)添加其他的配套功能以提供更人性化的服務(wù)。</p><p>  然后,介紹了系統(tǒng)的總體設(shè)計(jì)。包括系統(tǒng)的概述和非功能性需求,系統(tǒng)C/S架構(gòu)的總體設(shè)計(jì)??蛻舳税l(fā)出的搜索請(qǐng)求被服務(wù)器轉(zhuǎn)發(fā)到局域網(wǎng)中其他的客戶端,每個(gè)客戶端會(huì)把本地的搜索結(jié)果返回給服務(wù)器,再有服務(wù)器返回給請(qǐng)求發(fā)出者。整個(gè)邏輯清晰明了。</p><p>  最

107、后,論文闡述了系統(tǒng)的詳細(xì)設(shè)計(jì)。我們給出了系統(tǒng)的組件、模塊和框架,介紹了系統(tǒng)總體的一些實(shí)現(xiàn)細(xì)節(jié),并說(shuō)明了系統(tǒng)模塊通信。</p><p><b>  系統(tǒng)實(shí)現(xiàn)</b></p><p>  根據(jù)前幾章的概述和需求分析,以及總體設(shè)計(jì)和詳細(xì)設(shè)計(jì),在本章中就應(yīng)用如第二章提高的相關(guān)技術(shù)對(duì)此系統(tǒng)的具體實(shí)現(xiàn)進(jìn)行完善的說(shuō)明。這章的系統(tǒng)實(shí)現(xiàn)重點(diǎn)和難點(diǎn)都在服務(wù)器端。因此,詳細(xì)介紹服務(wù)器部分的

108、實(shí)現(xiàn),且對(duì)客戶端僅作簡(jiǎn)介。</p><p><b>  包設(shè)計(jì)</b></p><p>  數(shù)據(jù)包是計(jì)算機(jī)網(wǎng)絡(luò)中交換數(shù)據(jù)時(shí)使用的數(shù)據(jù)的單位。這樣的數(shù)據(jù)包結(jié)構(gòu)是沒(méi)有確定的結(jié)構(gòu),需要根據(jù)網(wǎng)絡(luò)編程的特點(diǎn),自己定義結(jié)構(gòu)。實(shí)際上,通過(guò)套接字交換的一個(gè)個(gè)數(shù)據(jù)片都是數(shù)據(jù)包。一般,把數(shù)據(jù)以文件形式保存在硬盤時(shí),采用的方式是分頭和實(shí)際數(shù)據(jù)來(lái)保存,數(shù)據(jù)包也采用類似的格式。以圖像文件格式B

109、MP為例,在文件頭部記錄著圖像的數(shù)據(jù)的寬,高以及色彩的比特?cái)?shù)等信息,而后面的部分才是真正的圖像數(shù)據(jù)。在網(wǎng)絡(luò)編程中的數(shù)據(jù)包也以同樣的格式構(gòu)成。</p><p>  在包設(shè)計(jì)中,通常采用兩種方式:固定長(zhǎng)度的包和可變長(zhǎng)度的包。固定長(zhǎng)度的包往往以結(jié)構(gòu)體方式實(shí)現(xiàn),在交換的數(shù)據(jù)包種類不太多的情況下,采用結(jié)構(gòu)體定義數(shù)據(jù)包的方法問(wèn)題不大,但利用結(jié)構(gòu)體定義數(shù)據(jù)包的方法的不足之處是,當(dāng)進(jìn)行字節(jié)調(diào)整時(shí),如果Client的程序和服務(wù)器程

110、序用不同的Struct member alignment設(shè)置,剛結(jié)構(gòu)體的sizeof值不一樣,不能正確地傳送數(shù)據(jù)。另外,數(shù)據(jù)包需要一個(gè)一個(gè)都用結(jié)構(gòu)體定義也是一個(gè)不足。因此,一般不采用利用結(jié)構(gòu)體的固定數(shù)據(jù)包,而是采用長(zhǎng)度可變的數(shù)據(jù)包格式。</p><p><b>  總體格式:</b></p><p>  系統(tǒng)建立局域網(wǎng)絡(luò)文件搜索必然需要對(duì)數(shù)據(jù)定制數(shù)據(jù)包進(jìn)行Client

111、與Server, Server與Search PC, Client與Client之間的通信。此系統(tǒng)根據(jù)搜索請(qǐng)求,PC信息,搜索結(jié)果等這些數(shù)據(jù)的封裝需要,總體上制了三類數(shù)據(jù)包:信息包,控制包,狀態(tài)包。</p><p>  以上三種包的具體作用如下:</p><p>  信息包:用于封裝各種主體數(shù)據(jù),它是此系統(tǒng)中各模塊交互和實(shí)現(xiàn)具體功能真正的數(shù)據(jù)流實(shí)體,起著主體作用。</p>&

112、lt;p>  控制包:用于封裝Client與server之間以信息包進(jìn)行通信時(shí),所需對(duì)通信時(shí)序、流程、交互過(guò)程進(jìn)行控制的數(shù)據(jù)包。</p><p>  狀態(tài)包:用于封裝具體PC的配置信息的數(shù)據(jù)包。</p><p>  包類型:機(jī)器列表包(ALS),數(shù)據(jù)庫(kù)訪問(wèn)包(DBS),搜索請(qǐng)求包(REQ),應(yīng)答包(ACK),Search PC配置包(INF),文件名包(DLD),搜索結(jié)果包(RES)

113、,錯(cuò)誤包(ERR)</p><p><b>  狀態(tài)包</b></p><p><b>  INF:</b></p><p>  目的:由提供搜索服務(wù)的PC,在與服務(wù)器的Search PC管理模塊成功建立Socket連接后,發(fā)送本地PC的配置信息(PC名,IP等)。</p><p><b>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論