




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