




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、石河子大學(xué)畢業(yè)論文(設(shè)計(jì))選題指南信息科學(xué)與技術(shù) 學(xué)院 計(jì)科 專業(yè) 2010 年級(jí)指導(dǎo)教師曹傳東職稱系統(tǒng)分析師、高工填報(bào)時(shí)間2013-11-6課題名稱使用Lucene和Solr進(jìn)行位置感知搜索課題來(lái)源1科研題目 2生產(chǎn)現(xiàn)場(chǎng) 3自擬題目課題類型1論文型 2設(shè)計(jì)型 完成課題所需時(shí)間12周14周所需學(xué)生人數(shù)1實(shí)習(xí)(考察)地點(diǎn)論文(設(shè)計(jì))地點(diǎn)本院網(wǎng)絡(luò)工程實(shí)驗(yàn)室立題依據(jù)不管是通過(guò)支持GPS的智能手機(jī)查找距離最近的餐館,還是通過(guò)社交站點(diǎn)查找附近的朋友,或是查看特定城市中運(yùn)輸某種商品的所有貨車,越來(lái)越多的人和企業(yè)都會(huì)使用位置感知的搜索服務(wù)。那么,如何構(gòu)建基于位置感知的搜索服務(wù)呢?好在Apache的開(kāi)源搜索引
2、擎框架項(xiàng)目Lucene和搜索服務(wù)器Solr項(xiàng)目最近添加了空間位置功能。本課題擬研究如何通過(guò)Apache的Lucene和Solr、利用空間數(shù)據(jù)來(lái)改進(jìn)搜索應(yīng)用程序。為什么要使用搜索引擎而不是那些優(yōu)秀(甚至免費(fèi))的GIS工具呢?原因是將應(yīng)用程序構(gòu)建在搜索引擎的基礎(chǔ)上能夠提供若干更為強(qiáng)大的功能,而這是其他傳統(tǒng)途徑所無(wú)法實(shí)現(xiàn)的。搜索引擎在合并結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)方面非常強(qiáng)勁,它支持用戶輸入自由形式的查詢,比如在搜索免費(fèi)文本的描述和標(biāo)題的同時(shí),根據(jù)地理位置數(shù)據(jù)限制或修改結(jié)果。例如,旅游站點(diǎn)可實(shí)現(xiàn)如下的特性:讓用戶能夠在幾秒之內(nèi),找到某個(gè)城市內(nèi)的所有提供24小時(shí)服務(wù)且配有舒適大床的四星級(jí)賓館。有些搜索系統(tǒng)(
3、如Solr)還提供對(duì)結(jié)果集進(jìn)行分類、突出顯示和拼寫(xiě)檢查等功能,從而能夠幫助用戶高效地查找與位置相關(guān)的那些結(jié)果。先來(lái)看看一個(gè)普通的全文搜索引擎都應(yīng)當(dāng)包含些什么。由于文本搜索引擎的工作流程一般分三步:從互聯(lián)網(wǎng)抓取網(wǎng)頁(yè)創(chuàng)建抓取網(wǎng)頁(yè)的索引庫(kù)從索引庫(kù)中進(jìn)行搜索。因此首先需要設(shè)計(jì)實(shí)現(xiàn)一個(gè)能訪問(wèn)網(wǎng)絡(luò)的爬蟲(chóng)器程序,依據(jù)URL之間的關(guān)聯(lián)性自動(dòng)爬行整個(gè)互聯(lián)網(wǎng),并對(duì)爬行過(guò)的網(wǎng)頁(yè)進(jìn)行抓取收集。當(dāng)網(wǎng)頁(yè)被收集回來(lái)后,采用索引分析程序進(jìn)行網(wǎng)頁(yè)信息的分析,依據(jù)一定的相關(guān)度算法(如超鏈接算法)進(jìn)行大量計(jì)算,創(chuàng)建倒排序的索引庫(kù)。索引庫(kù)建好后,用戶就可以通過(guò)提供的查詢界面提交關(guān)鍵詞進(jìn)行搜索,依據(jù)特定的排序算法返回搜索結(jié)果。因此,搜
4、索引擎并不是對(duì)互聯(lián)網(wǎng)進(jìn)行直接搜索,而是對(duì)已抓取網(wǎng)頁(yè)索引庫(kù)的搜索,這也是能快速返回搜索結(jié)果的原因,索引在其中扮演了最為重要的角色,索引算法的效率直接影響搜索引擎的效率,是評(píng)測(cè)搜索引擎是否高效的關(guān)鍵因素。網(wǎng)頁(yè)爬行器、索引器、查詢器共同構(gòu)成了文本搜索引擎的重要組成單元。但是,針對(duì)特定的語(yǔ)言,如中文、日文、韓文等,并不像英文那樣可簡(jiǎn)單地識(shí)別出關(guān)鍵詞來(lái)(因?yàn)橛⒄Z(yǔ)的一句話是用空格分割詞語(yǔ)的),因此,在索引器創(chuàng)建索引之前,以及查詢器處理用戶輸入的關(guān)鍵詞時(shí),還需要分詞器對(duì)某種語(yǔ)言的文本進(jìn)行分詞。一般情況下,分詞器將一段文本拆分成多個(gè)詞后,還需要進(jìn)一步進(jìn)行過(guò)濾處理,如去掉一些敏感詞、轉(zhuǎn)換大小寫(xiě)和單復(fù)數(shù)等,也就是
5、說(shuō),除了上面所說(shuō)的3個(gè)關(guān)鍵組件之外,由分詞器和過(guò)濾器一起構(gòu)成的所謂文本分析器,也是搜索引擎應(yīng)當(dāng)包含的一個(gè)重要組件。使用開(kāi)源搜索引擎項(xiàng)目實(shí)現(xiàn)上面的基本組件,不僅可以大大縮短構(gòu)建搜索應(yīng)用服務(wù)器的周期,并可根據(jù)應(yīng)用需求,進(jìn)一步構(gòu)建符合特定需求的搜索引擎系統(tǒng)。開(kāi)放源代碼的搜索引擎可為用戶提供更大的透明性,開(kāi)放的源代碼、公開(kāi)的排序算法、隨意的可定制性,相比于商業(yè)搜索引擎而言,更為開(kāi)發(fā)者和用戶所需要。由于目前國(guó)內(nèi)外已經(jīng)有一些開(kāi)放源代碼的搜索引擎項(xiàng)目,主要集在中搜索引擎開(kāi)發(fā)工具包與架構(gòu)、Web搜索引擎、文件搜索引擎幾個(gè)方面,因此,本課題將采用當(dāng)前一個(gè)比較流行且相對(duì)比較成熟的搜索引擎開(kāi)源項(xiàng)目Lucene。Lu
6、cene可以說(shuō)是目前最為流行的開(kāi)放源代碼全文搜索引擎工具包,隸屬于Apache基金會(huì),由資深全文索引/檢索專家Doug Cutting所發(fā)起,并以其妻子的中間名作為項(xiàng)目的名稱,放在SourceForge的網(wǎng)站上提供下載。2001年9月,Lucene作為高質(zhì)量的開(kāi)源Java產(chǎn)品加入到Apache軟件基金會(huì)的 Jakarta家族中。隨著每個(gè)版本的發(fā)布,這個(gè)項(xiàng)目得到了明顯的增強(qiáng),目前Lucene的最新版本為?;贚ucene在索引及搜索方面的優(yōu)秀表現(xiàn),雖然由Java編寫(xiě)的Lucene具有天生的跨平臺(tái)性,但仍被改編為許多其他語(yǔ)言的版本:Python(PyLucene)、C+(CLucene)、.Net
7、(Lucenenet)等。Lucene不是一個(gè)具有完整特征的搜索應(yīng)用程序,而是一個(gè)全文搜索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,以及部分的文本分析引擎(英文與德文兩種西方語(yǔ)言)。Lucene的目的是為軟件開(kāi)發(fā)人員提供一個(gè)簡(jiǎn)單易用的工具包,以方便其在目標(biāo)系統(tǒng)中實(shí)現(xiàn)全文檢索的功能,或者是以此為基礎(chǔ),建立起完整的全文檢索引擎。因此,同其他開(kāi)源搜索引擎相比,Lucene具有非常好的架構(gòu),能夠方便地在其基礎(chǔ)上進(jìn)行研究與開(kāi)發(fā),添加新功能或者開(kāi)發(fā)新系統(tǒng)。盡管Lucene本身只支持文本文件及少量語(yǔ)種的索引,并且不具備爬蟲(chóng)功能,但這又恰是Lucene的魅力所在,通過(guò)Lucene提供的豐富接口,我們可以根據(jù)
8、自身的需要,在其上添加具體語(yǔ)言的分詞器,針對(duì)具體文檔的文本分析器等,而這些具體的功能實(shí)現(xiàn),都可以借助于一些已有的相關(guān)開(kāi)源軟件項(xiàng)目、甚至是商業(yè)軟件來(lái)完成,這也保證了Lucene在索引及搜索方面的專注性。目前,通過(guò)在Lucene的基礎(chǔ)上加入爬行器、文本分析器等也形成了一些新的開(kāi)源項(xiàng)目,如Heritrix、Nutch、Solr等。并且Lucene的索引數(shù)據(jù)結(jié)構(gòu)已經(jīng)成了一種事實(shí)上的標(biāo)準(zhǔn),為許多搜索引擎所采用。例如,Apache軟件基金會(huì)的網(wǎng)站就使用了Lucene作為全文檢索的引擎,IBM的開(kāi)源軟件eclipse的2.1版本中,也采用了Lucene作為幫助子系統(tǒng)的全文索引引擎,相應(yīng)的IBM的商業(yè)軟件We
9、b Sphere中也采用了Lucene。Lucene的架構(gòu)和工作流程如圖2所示,圖中,創(chuàng)建索引的過(guò)程分為下述4個(gè)主要的步驟:(1) 有一系列被索引文件(這里是Web爬蟲(chóng)器抓取下載的一系列結(jié)果文件)(2) 被索引文件經(jīng)過(guò)語(yǔ)法分析和語(yǔ)言處理形成一系列詞(Term)。(3) 經(jīng)過(guò)索引創(chuàng)建形成詞典和反向索引表(倒排表)。(4) 通過(guò)索引存儲(chǔ)將索引寫(xiě)入硬盤。查詢的過(guò)程為:(a) 用戶輸入查詢語(yǔ)句。(b) 對(duì)查詢語(yǔ)句經(jīng)過(guò)語(yǔ)法分析和語(yǔ)言分析處理得到一系列詞(Term)。(c) 通過(guò)語(yǔ)法分析得到一個(gè)查詢樹(shù)。(d) 通過(guò)索引存儲(chǔ)將索引讀入到內(nèi)存。(e) 利用查詢樹(shù)搜索索引,從而得到每個(gè)詞(Term)的文檔鏈表,
10、對(duì)文檔鏈表進(jìn)行交,差,并得到結(jié)果文檔。(f) 將搜索到的結(jié)果文檔對(duì)查詢的相關(guān)性進(jìn)行排序。(g) 返回查詢結(jié)果給用戶。圖2 Lucene的架構(gòu)和工作流程圖對(duì)應(yīng)于圖2的全文檢索流程的Lucene實(shí)現(xiàn)的包結(jié)構(gòu)如圖3所示,其中: Lucene的analysis模塊主要負(fù)責(zé)詞法分析及語(yǔ)言處理而形成Term。 Lucene的index模塊主要負(fù)責(zé)索引的創(chuàng)建,里面有IndexWriter。 Lucene的store模塊主要負(fù)責(zé)索引的讀寫(xiě)。 Lucene的QueryParser主要負(fù)責(zé)語(yǔ)法分析。 Lucene的search模塊主要負(fù)責(zé)對(duì)索引的搜索。 Lucene的similarity模塊主要負(fù)責(zé)對(duì)相關(guān)性打分的
11、實(shí)現(xiàn)?;贚ucene的Java編碼文件中共有7個(gè)包需要導(dǎo)入:analysis,document,index,queryParser,search,store,util。圖3 Lucene的實(shí)現(xiàn)包結(jié)構(gòu)Apache Solr則是一個(gè)使用Lucene的上述優(yōu)秀的面向?qū)ο蟮捏w系架構(gòu)、通過(guò)HTTP來(lái)提供搜索、分類等功能的搜索服務(wù)器。盡管Solr是基于Lucene的,但Solr采用Java5開(kāi)發(fā),同時(shí)對(duì)其進(jìn)行了重要擴(kuò)展,提供了比Lucene更為豐富的查詢語(yǔ)言,同時(shí)實(shí)現(xiàn)了高性能、可配置、可擴(kuò)展并對(duì)查詢性能進(jìn)行了優(yōu)化,并且提供了一個(gè)完善的功能管理界面,是一款支持群集技術(shù)的更為優(yōu)秀的全文搜索引擎。文檔通過(guò)Ht
12、tp利用XML加到一個(gè)搜索集合中。查詢?cè)摷弦彩峭ㄟ^(guò)http收到一個(gè)XML/JSON響應(yīng)來(lái)實(shí)現(xiàn)。Solr支持高效、靈活的緩存功能和垂直搜索功能,可高亮顯示搜索結(jié)果,支持通過(guò)索引復(fù)制來(lái)提高可用性,同時(shí)提供一套強(qiáng)大Data Schema來(lái)定義字段,類型和設(shè)置文本分析。借助Lucene在表達(dá)用戶查詢方面的豐富功能,Solr通過(guò)應(yīng)用其多種對(duì)空間搜索非常重要的過(guò)濾器機(jī)制來(lái)實(shí)現(xiàn)限制空間范圍的查詢條件。換言之,Lucene和Solr的范圍查詢和范圍過(guò)濾器是實(shí)現(xiàn)限制空間的關(guān)鍵機(jī)制。在范圍查詢(或過(guò)濾器)中,用戶聲明需要將所有搜索到的文檔限制在使用自然排序的兩個(gè)值之間。例如:通常使用范圍查詢來(lái)查找發(fā)生在過(guò)去一年
13、或上一個(gè)月的所有文檔。在處理過(guò)程中,Lucene必須枚舉文檔中的詞匯以識(shí)別在這個(gè)范圍之內(nèi)的所有文檔。借助這一功能,構(gòu)建空間搜索應(yīng)用程序只需要識(shí)別需要添加到應(yīng)用程序中的、以某種編碼方式文本化的空間數(shù)據(jù)。這些數(shù)據(jù)需要以地理編碼的形式出現(xiàn),如緯度、經(jīng)度和海拔,或以郵政編碼、街道地址的形式出現(xiàn)。編碼系統(tǒng)的格式越規(guī)范,它在Lucene和Solr中的識(shí)別和利用就越容易。Grant Ingersoll在其“使用Apache Lucene和Solr進(jìn)行位置感知搜索”一文中,給出了一個(gè)名為j-spatial的地理搜索源碼實(shí)例(),其中就使用了緯度和經(jīng)度(縮寫(xiě)為lat/lon,通常用與位于英國(guó)的格林威治本初子午線
14、相距的度、分和秒來(lái)表示一個(gè)地理位置點(diǎn),該地理數(shù)據(jù)通常需要用double或更高的精度表示。如在該例子中,美國(guó)紐約州的Syracuse市的經(jīng)度為東經(jīng)76.150026(如果沒(méi)有指定東方,則為-76.150026)和北緯 43.049648。Lucene詞匯(Term)中的緯度和經(jīng)度通常表示為兩個(gè)不同的double型字段,但是這在一些應(yīng)用程序中可能會(huì)顯著影響性能。編碼每個(gè)緯度和經(jīng)度可能導(dǎo)致索引大量唯一的詞匯,這不僅顯著增大了索引文件的尺寸,而且會(huì)顯著減慢搜索速度。這個(gè)問(wèn)題可以通過(guò)使用Geohash編碼的方法解決,即通過(guò)hash散列碼的方式將緯度/經(jīng)度壓縮編碼到一個(gè)String中。Geohash的額外
15、好處是能夠通過(guò)切去散列碼末尾的字符來(lái)實(shí)現(xiàn)任意的精度。因?yàn)樵谠S多情況下,相鄰的位置通常有相同的前綴。例如,在 中輸入 Syracuse, NY(美國(guó)紐約州的Syracuse市)將生成散列碼dr9ughxjkrt4b,而輸入Syracuse的郊區(qū)Cicero, NY生成散列碼dr9veggs4ptd3,可見(jiàn)它們的共同前綴都是dr9。一旦在Lucene的索引中添加了地理數(shù)據(jù)(將空間數(shù)據(jù)和文本合并處理)之后,搜索應(yīng)用程序就可以在與用戶界面交互時(shí)至少實(shí)現(xiàn)下述5種基本需求: 距離計(jì)算:根據(jù)給定點(diǎn)計(jì)算它到其他點(diǎn)的距離。 限定框過(guò)濾器:查找某些特定區(qū)域內(nèi)所有匹配項(xiàng)(文檔)。 排序:根據(jù)到
16、固定點(diǎn)的距離對(duì)搜索結(jié)果進(jìn)行排序。 相關(guān)度改進(jìn):使用距離作為搜索結(jié)果排序的增強(qiáng)因素,同時(shí)允許其他因素發(fā)揮作用。 查詢解析:在給出位置的地址或其他一些用戶限定條件時(shí),創(chuàng)建可用于根據(jù)索引數(shù)據(jù)進(jìn)行搜索的編碼表示。上述5個(gè)要素中,排序和相關(guān)度改進(jìn)僅使用距離計(jì)算,因此重點(diǎn)是實(shí)現(xiàn)距離計(jì)算、限定框過(guò)濾器和查詢解析這3個(gè)方面。距離計(jì)算在GIS應(yīng)用中就是計(jì)算大圓弧長(zhǎng)(球面兩點(diǎn)之間的最短距離),因此距離計(jì)算主要的問(wèn)題是精度。當(dāng)兩點(diǎn)之間的距離相隔很遠(yuǎn),或者要求較高的準(zhǔn)確度時(shí),需要使用橢圓的地球球面模型和 Vincenty公式來(lái)獲取高度精確的距離(可精確到0.5毫米),但通常的本地搜索程序,僅僅是計(jì)算在城市中行走的某段
17、距離而已(例如在一輛出租車中穿越紐約城的曼哈頓區(qū)有多遠(yuǎn)),因此并不一定都要使用平面地球模型和大圓弧長(zhǎng)距離來(lái)表示距離。限定框過(guò)濾器的作用是縮小文檔集的范圍。如果待索引文檔中僅存儲(chǔ)了緯經(jīng)度數(shù)據(jù),那么縮小文檔集的首選方法是傳入包含指定位置的周邊區(qū)域的范圍(如矩形區(qū)域的界限點(diǎn)數(shù)據(jù))。如果待索引文檔中還包含了GIS的分層信息或Geohash編碼,那么可以利用這些值來(lái)更好地縮小需要搜索的文檔的范圍。因此,至關(guān)重要的是查詢解析功能的實(shí)現(xiàn)。查詢解析功能需要確定查詢的哪個(gè)部分包含所搜索的關(guān)鍵字,哪個(gè)部分包含位置信息。后者即被稱為地理編碼(geocoding)。因此,如何將地名和其他空間資源通過(guò)規(guī)范化的表示(比如
18、GeoNames)轉(zhuǎn)換成位置信息是一個(gè)關(guān)鍵因素。這里面存在著國(guó)家地理信息數(shù)據(jù)規(guī)范化的問(wèn)題,地名詞匯的表示順序(如中國(guó)是從國(guó)家省市縣街區(qū)/鄉(xiāng)鎮(zhèn)從大到小的順序,而英美等西方國(guó)家則正好相反),規(guī)范化地名縮寫(xiě),以及拼寫(xiě)錯(cuò)誤、語(yǔ)言歧義和不良臟數(shù)據(jù)等的影響。雖然地理編碼問(wèn)題很復(fù)雜,但是目前可以使用Web服務(wù)來(lái)將地址轉(zhuǎn)換成位置。兩種常用的服務(wù)為 Google Maps公共API和GeoNames(不幸的是,使用這些Web服務(wù)盡管是免費(fèi)下載的,但必須遵循其使用條款,通常是帶有某些限制并產(chǎn)生流量計(jì)費(fèi)問(wèn)題的)。因此可能需要自己編碼實(shí)現(xiàn)這一功能。最好從基礎(chǔ)開(kāi)始(如城市的街道地址、基礎(chǔ)地形測(cè)量數(shù)據(jù)),然后再添加旅游景
19、點(diǎn)名稱等,以及保障系統(tǒng)健壯性的異常處理等。要運(yùn)行Grant Ingersoll給出的j-spatial地理搜索樣例代碼,需要安裝JDK 1.5 或更高版本和Ant 1.7 或更高版本。安裝步驟為:Step1. unzip j-spatial.zipStep2. cd geospatial-examples Step3. ant install Step4. 啟動(dòng)Solr:ant start-solr(以后要停止Solr的話就運(yùn)行ant stop-solr)Step5. 在瀏覽器地址欄中訪問(wèn)http:/localhost:8983/solr/admin 并確認(rèn)Solr正常運(yùn)行。如果安裝正常的話,
20、應(yīng)該能看到一個(gè)帶有查詢框的基礎(chǔ)管理員界面??傊?,使用Lucene和Solr基于點(diǎn)的位置模型是可以實(shí)現(xiàn)搜索、排序和過(guò)濾文本文檔功能的。如果要構(gòu)建一個(gè)可靠的位置感知搜索應(yīng)用程序,用于合并基于點(diǎn)的位置的結(jié)構(gòu)和非結(jié)構(gòu)化文本,那么使用Lucene 和Solr是可行的。因此,本課題擬利用開(kāi)源項(xiàng)目Lucene和Solr,基于Eclipse Java IDE/MyEclipse集成開(kāi)發(fā)環(huán)境,設(shè)計(jì)實(shí)現(xiàn)一個(gè)能夠基于點(diǎn)的位置信息進(jìn)行地理信息查詢的搜索引擎系統(tǒng)。這是對(duì)學(xué)生的Java編程開(kāi)發(fā)技能和利用軟件工程的分析設(shè)計(jì)思想和相關(guān)技術(shù)實(shí)現(xiàn)項(xiàng)目開(kāi)發(fā)目標(biāo)的動(dòng)手能力進(jìn)行的一次較全面深入的考察。通過(guò)本課題,學(xué)生可以進(jìn)一步了解基于
21、面向?qū)ο蟮姆治鲈O(shè)計(jì)思想,結(jié)合設(shè)計(jì)模式和純面向?qū)ο缶幊蘆ava語(yǔ)言工具,參考j-spatial地理搜索樣例代碼,分析設(shè)計(jì)與實(shí)現(xiàn)一個(gè)具有基本搜索引擎框架和流程、模塊功能完整的位置感知搜索引擎系統(tǒng)的全過(guò)程,學(xué)生可基于課題的成果開(kāi)展互聯(lián)網(wǎng)創(chuàng)業(yè)或就業(yè),并且更進(jìn)一步理解和掌握軟件工程的方法論,深入熟悉和掌握面向?qū)ο蟮木幊谈呒?jí)語(yǔ)言Java以及基于Eclipse Java IDE/MyEclipse集成開(kāi)發(fā)環(huán)境,同時(shí)對(duì)Lucene、Solr、地理編碼(Geocoding)和地理名稱服務(wù)(GeoNames)、Ant等流行開(kāi)源項(xiàng)目或空間信息技術(shù)的實(shí)現(xiàn)細(xì)節(jié)會(huì)有一個(gè)深入的了解和綜合應(yīng)用。具體在本課題中,建議使用如下的
22、解決方案:1、操作系統(tǒng)平臺(tái)采用Windows或Linux系統(tǒng)平臺(tái);2、Web服務(wù)器采用Tomcat v5.5以上版本;(下載地址:/tomcat/tomcat-5/),Ant建議采用v1.7以上版本,下載地址:http:/pan.solr.cc/share/link?shareid=181778&uk=352829242#dir/ path=%2Fwww.solr.cc%E5%85%B1%E4%BA%AB%E8%B5%84%E6%BA%90;若采用Eclipse Java IDE集成開(kāi)發(fā)環(huán)境的話,還需要下載并安裝Eclipse的Tomcat
23、 插件TomcatPlugin;(下載地址:/eclipse/index.jsp)3、數(shù)據(jù)庫(kù)采用MySQL v5.0以上版本;(下載地址:)若使用Java連接到MySQL數(shù)據(jù)庫(kù),還需要用到MySQL Connector/J即MySQL的JDBC連接驅(qū)動(dòng)包;(下載地址:4、JDK建議采用至少v_07或以上版本;(下載地址:/download.html)5、集成開(kāi)發(fā)環(huán)境建議采用Eclipse或MyEclipse;(下載地址:)注:若需要Eclipse支持中文界面,則需要另下載Eclipse SDK的2個(gè)語(yǔ)言包: http:/downloa
24、/eclipse/downloads/;此外,建議下載安裝使用如下Eclipse插件:Eclipse插件ResourceBundleEditor v ,下載地址:Eclipse插件MyEclipse v 6、全文搜索引擎框架平臺(tái)Lucene建議使用v2.9及其以上版本(目前最新為v4.6.0版,下載地址:,Lucene的官方網(wǎng)站為:;對(duì)應(yīng)中文站點(diǎn):7、地理信息搜索引擎建議采用開(kāi)源項(xiàng)目Solr版本v2.0及其以上,目前最新版本為v4.6.0。下載地址:http:/pan.solr.cc/share/link?shareid=
25、181778&uk=352829242#dir/path=%2Fwww.solr.cc%E5% 85% B1%E4%BA%AB%E8%B5%84%E6%BA%90注:Solr需要用到如下大量的工具類庫(kù)(均需要單獨(dú)下載安裝在./lib/目錄下)ant-1.7.2.jarcommons-httpclient-.jarjsp-api-1.4.jarservlet-api-2.4.jar8、使用點(diǎn)位置經(jīng)緯度坐標(biāo)和GeoNames Web服務(wù)的地理搜索源碼實(shí)例j-spatial,下載地址: dw/java/j-spatial.zip。需要參考該樣本例子中的Geospatial-examples源
26、碼,該實(shí)例需要包含下述類庫(kù):geonames-java5.jarlucene-spatial-.jarspatial-ex.jar9、由于Lucene不帶中文文本分析器不支持中文,需要選用一個(gè)第三方的中文分詞軟件。目前支持Lucene的幾個(gè)主要的中文分詞器工具有:paoding、imdict、mmseg4j、ik、JE:(1) paoding:Lucene中文分詞“庖丁解?!保≒aoding Analysis),由qieqie.wang提交在google code上,最后一次代碼提交時(shí)間為2008年06月12日。速度上,paoding在PIII 1G內(nèi)存的PC上,1秒可準(zhǔn)確分詞100萬(wàn)個(gè)漢字,
27、支持不限個(gè)數(shù)的用戶自定義詞庫(kù),純文本格式,一行一詞,并使用后臺(tái)線程檢測(cè)詞庫(kù)的更新,其源碼目錄一共1.3M,有6個(gè)properties文件,48個(gè)Java文件,6895行,切分算法不是很復(fù)雜。(2) imdict:imdict智能詞典所采用的智能中文分詞程序,由XiaoPingGao最后一次提交在2009-07-24(要進(jìn)入lucene contribute,lucene trunk 中contrib/analyzers/smartcn/)。速度大約是259517(漢字/秒),暫時(shí)不支持用戶自定義詞庫(kù)(但中科院原版ICTCLAS支持)。詞庫(kù)約6.7M大小(這個(gè)詞庫(kù)是必須的),源碼src目錄約15
28、2KB,20個(gè)Java文件,2399行。它使用ICTCLAS HHMM隱馬爾科夫模型,“利用大量語(yǔ)料庫(kù)的訓(xùn)練來(lái)統(tǒng)計(jì)漢語(yǔ)詞匯的詞頻和跳轉(zhuǎn)概率,從而根據(jù)這些統(tǒng)計(jì)結(jié)果對(duì)整個(gè)漢語(yǔ)句子計(jì)算最似然(likelihood)的切分”。由于是利用詞庫(kù)分詞,每個(gè)被分出來(lái)的詞都可同時(shí)被賦予相應(yīng)詞性標(biāo)記,劃分結(jié)果因而相當(dāng)準(zhǔn)確。不過(guò)美中不足的是它常出現(xiàn)代碼運(yùn)行異常的情況。(3) mmseg4j:使用Chih-Hao Tsai的MMSeg算法實(shí)現(xiàn)的中文分詞器,由chenlb2008提交在google code上,最后一次代碼上傳時(shí)間為2009-08-03。mmseg4j自帶sogou詞庫(kù),支持名為wordsxxx.dic
29、,utf8文本格式的用戶自定義詞庫(kù),一行一詞。不支持自動(dòng)檢測(cè)。速度方面,對(duì)于復(fù)雜句子切分大約1200kb/s左右,svn src目錄一共132k,23個(gè)Java文件,2089行。MMSeg算法較復(fù)雜。(4) ik:采用特有的“正向迭代最細(xì)粒度切分算法”的多子處理器分析模式。由linliangyi2005提交在google code上,最后上傳維護(hù)代碼為2009-07-31,支持API級(jí)的用戶詞庫(kù)加載,具有50萬(wàn)字/秒的高速處理能力,svn src目錄一共6.6M(詞典文件也在里面),22個(gè)Java文件,4217行。切分算法采用多子處理器分析模式,跟paoding類似。(5) JE(je ana
30、lysis):支持Lucene的另一個(gè)Java開(kāi)源項(xiàng)目JE分詞器,采用簡(jiǎn)單的正向二分法切分,提供API添加新詞,切分效果不如以上的工具好(下載地址:)。建議選用目前國(guó)內(nèi)在Solr中使用較多的mmseg4j中文分詞工具。本課題預(yù)期目標(biāo)(含:本課題應(yīng)完成的工作,課題預(yù)期目標(biāo)和課題價(jià)值估計(jì))利用開(kāi)源項(xiàng)目Lucene和Solr,基于Eclipse Java IDE/MyEclipse集成開(kāi)發(fā)環(huán)境,設(shè)計(jì)實(shí)現(xiàn)一個(gè)能夠基于點(diǎn)的位置信息進(jìn)行地理信息查詢的搜索引擎系統(tǒng)。這是對(duì)學(xué)生的Java編程開(kāi)發(fā)技能和利用軟件工程的分析設(shè)計(jì)思想和相關(guān)技術(shù)實(shí)現(xiàn)項(xiàng)目開(kāi)發(fā)目標(biāo)的動(dòng)手能力進(jìn)行的一次較全面深入的考察。通過(guò)本課題,學(xué)生可以
31、進(jìn)一步了解基于面向?qū)ο蟮姆治鲈O(shè)計(jì)思想,結(jié)合設(shè)計(jì)模式和純面向?qū)ο缶幊蘆ava語(yǔ)言工具,參考j-spatial地理搜索樣例代碼,分析設(shè)計(jì)與實(shí)現(xiàn)一個(gè)具有基本搜索引擎框架和流程、模塊功能完整的位置感知搜索引擎系統(tǒng)的全過(guò)程,學(xué)生可基于課題的成果開(kāi)展互聯(lián)網(wǎng)創(chuàng)業(yè)或就業(yè),并且更進(jìn)一步理解和掌握軟件工程的方法論,深入熟悉和掌握面向?qū)ο蟮木幊谈呒?jí)語(yǔ)言Java以及基于Eclipse Java IDE/MyEclipse集成開(kāi)發(fā)環(huán)境,同時(shí)對(duì)Lucene、Solr、地理編碼(Geocoding)和地理名稱服務(wù)(GeoNames)、Ant等流行開(kāi)源項(xiàng)目或空間信息技術(shù)的實(shí)現(xiàn)細(xì)節(jié)會(huì)有一個(gè)深入的了解和綜合應(yīng)用。課題要求完成:必
32、要的文檔閱讀、資料整理工作;(指導(dǎo)教師有特定要求)必要的系統(tǒng)需求分析和架構(gòu)設(shè)計(jì);(分析部分的成果文檔需要有大量的對(duì)于Lucene和Solr的源碼閱讀整理工作,建議Java語(yǔ)言程度較好的學(xué)生完成該項(xiàng)工作)可能的數(shù)據(jù)庫(kù)分析設(shè)計(jì)工作;參考地理搜索源碼實(shí)例j-spatial,設(shè)計(jì)實(shí)現(xiàn)一個(gè)基于位置點(diǎn)的經(jīng)緯度坐標(biāo)和Geonames地名服務(wù)的地理搜索引擎系統(tǒng),系統(tǒng)應(yīng)至少支持距離計(jì)算、限定框過(guò)濾器、排序(根據(jù)到固定點(diǎn)的距離對(duì)搜索結(jié)果進(jìn)行排序)和查詢解析功能;必要的前端界面編程實(shí)現(xiàn)、后臺(tái)配置及系統(tǒng)管理維護(hù)等功能。提供的外部條件可利用1臺(tái)已接入互聯(lián)網(wǎng)的PC構(gòu)建開(kāi)發(fā)及應(yīng)用環(huán)境。建議使用Windows系統(tǒng)平臺(tái),具體配
33、置不限。集成開(kāi)發(fā)環(huán)境限Eclipse Java IDE或MyEclipse,具體的組件請(qǐng)參考“立題依據(jù)”中的解決方案。主要參考資料 有關(guān)Lucene和Solr的學(xué)習(xí),請(qǐng)首先閱讀下述文章或參考書(shū)籍:1Grant Ingersoll,使用Apache Lucene和Solr進(jìn)行位置感知搜索EB/OL. /software/dw/java/j-spatial.zip,2010-02-222Erik Hatcher,Otis Gospodnetic,Michael McCandless. Lucene實(shí)戰(zhàn)(Lucene In Action,第2版)M.北京:人民郵電出版社,2011 3 David S
34、miley, Faceting in Solr 1.4 Enterprise Search ServerM.NY: Packt Publishing,20094吳眾欣,沈家立. Lucene分析與應(yīng)用M.北京: 機(jī)械工業(yè)出版社,2008更多有關(guān)Solr的問(wèn)題,請(qǐng)重點(diǎn)參考其官方主頁(yè)上的資源。推薦首先閱讀官網(wǎng)上的電子版Solr開(kāi)發(fā)手冊(cè)()。若仍有開(kāi)發(fā)編碼方面的細(xì)節(jié)問(wèn)題,可訪問(wèn)國(guó)內(nèi)人氣旺旺的Solr中國(guó)社區(qū)()。有關(guān)Geography和GIS方面的學(xué)習(xí),請(qǐng)?jiān)L問(wèn)這個(gè)Wikipedia頁(yè)面并了解關(guān)于GIS、地理信息編碼、Geohash、距離計(jì)算、限定框方面的入門信息:。有關(guān)公共地理編碼服務(wù),請(qǐng)?jiān)L問(wèn)Google Maps( services.html#Geocoding)和GeoNames()。有關(guān)J2EE設(shè)計(jì)模式、JDK類庫(kù)、Java Web開(kāi)發(fā)編碼方面的參考資料,請(qǐng)參考如下書(shū)籍:1克勞福
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)產(chǎn)業(yè)園可行性分析報(bào)告
- 建筑給排水設(shè)計(jì)規(guī)范gb50015
- 商業(yè)街區(qū)商業(yè)規(guī)劃手冊(cè)
- 智能生產(chǎn)線設(shè)備維護(hù)指南
- 三農(nóng)文化傳播策略方案
- 重慶高新技術(shù)產(chǎn)業(yè)
- 開(kāi)題可行性分析報(bào)告模板
- 醫(yī)療設(shè)備操作與使用說(shuō)明手冊(cè)
- 農(nóng)業(yè)產(chǎn)業(yè)鏈協(xié)同發(fā)展方案
- 衛(wèi)星導(dǎo)航定位系統(tǒng)技術(shù)應(yīng)用文檔
- 工業(yè)軟件CAD:研究框架
- 礦山救護(hù)隊(duì)裝備培訓(xùn)課件
- 光伏并網(wǎng)前單位工程驗(yàn)收?qǐng)?bào)告-2023
- 剪輯拍攝培訓(xùn)課件
- 股權(quán)投資的基本概念與原理
- 自檢記錄表鋼筋
- 壓力容器年度自查表
- 回彈法檢測(cè)混凝土強(qiáng)度自動(dòng)計(jì)算表,測(cè)區(qū)混凝土強(qiáng)度換算表,回彈值
- GB/T 2965-2023鈦及鈦合金棒材
- 身份證A4直接打印word模版
- 在線考試系統(tǒng)數(shù)據(jù)庫(kù)分析設(shè)計(jì)與建模
評(píng)論
0/150
提交評(píng)論