精品国产一级毛片大全,毛片一级在线,毛片免费观看的视频在线,午夜毛片福利

我要投稿 投訴建議

全文檢索引擎Lucene系統(tǒng)模型和應(yīng)用探究論文

時(shí)間:2022-08-07 19:53:59 畢業(yè)論文范文 我要投稿
  • 相關(guān)推薦

全文檢索引擎Lucene系統(tǒng)模型和應(yīng)用探究論文

  引言

全文檢索引擎Lucene系統(tǒng)模型和應(yīng)用探究論文

  大數(shù)據(jù)時(shí)代,可利用的數(shù)據(jù)和信息量呈爆炸式增長(zhǎng),人們?cè)讷@取更多信息的同時(shí),也不可避免地增加了篩選信息的難度。面對(duì)海量數(shù)據(jù),如何使用戶更好、更準(zhǔn)確地抓取所需信息,已成為信息化技術(shù)中一個(gè)非常重要的課題。全文檢索技術(shù)是為用戶提供快速、準(zhǔn)確獲取有效信息的重要方法。

  1全文檢索技術(shù)

  全文檢索是以各種計(jì)算機(jī)數(shù)據(jù),諸如文字、聲音、圖像等為處理對(duì)象,提供按照數(shù)據(jù)資料的內(nèi)容,而不是外在特征來(lái)實(shí)現(xiàn)的信息檢索手段。相對(duì)于一般的 DBMS,可以將 Word文檔、郵件、網(wǎng)頁(yè)等非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù)作為檢索對(duì)象。全文檢索最初是以字符串匹配程序?qū)崿F(xiàn)的,即在待查找的文件中,打開每個(gè)文件后,對(duì)文件內(nèi)容從頭到尾檢索,如果其中包含需要查詢的字符串,則將它作為結(jié)果文件。這種順序檢索效率較低,因此,全文檢索都是通過(guò)“索引”技術(shù)實(shí)現(xiàn)的。其過(guò)程是由計(jì)算機(jī)索引程序掃描文件中的每一個(gè)詞,然后對(duì)每個(gè)詞建立一個(gè)索引,并指明該詞在文章中出現(xiàn)的次數(shù)和位置。當(dāng)用戶查詢時(shí),由檢索程序?qū)σ呀⒌乃饕M(jìn)行查找,得到所需要的文件。

  2全文搜索引擎

  LuceneLucene是一個(gè)非常優(yōu)秀、成熟、開源、免費(fèi)、采用Java語(yǔ)言編寫的全文檢索引擎工具。它提供了豐富的 API,可以與存儲(chǔ)在索引中的信息方便地交互,并能方便地嵌入到各種應(yīng)用系統(tǒng)中,實(shí)現(xiàn)針對(duì)應(yīng)用的全文索引/檢索功能。Lucene運(yùn)用了大量的面向?qū)ο笤O(shè)計(jì)思想。首先定義了一個(gè)與平臺(tái)無(wú)關(guān)的索引文件格式,其次通過(guò)抽象系統(tǒng)的核心組成部分設(shè)計(jì)為抽象類,具體的平臺(tái)實(shí)現(xiàn)部分設(shè)計(jì)為抽象類的實(shí)現(xiàn),此外與具體平臺(tái)相關(guān)的部分比如文件存儲(chǔ)也封裝為類,經(jīng)過(guò)層層的面向?qū)ο笫教幚,最終達(dá)成一個(gè)低耦合、高效率、容易二次開發(fā)的檢索引擎系統(tǒng)。目前,Lucene得到了廣泛應(yīng)用,許多Java項(xiàng)目都使用了Lucene作為其后臺(tái)的全文搜索引擎,比較著名的有:Jive(Web論壇系統(tǒng))、Eyebrows(郵件列表 HTML歸檔/瀏覽/查詢系統(tǒng))、Cocoon(基于XML的 Web發(fā)布框架)等。

  3Lucene系統(tǒng)模型

  3.1Lucene系統(tǒng)結(jié)構(gòu)Lucene搜索引擎由基礎(chǔ)結(jié)構(gòu)封裝、索引核心、對(duì)外接口、查詢分析器4大部分組成,如圖1所示。圖1Lucene系統(tǒng)結(jié)構(gòu)索引核心是Lucene的重點(diǎn),主要包括索引管理和數(shù)據(jù)存儲(chǔ)管理。其中org.apache.lucene.index包實(shí)現(xiàn)對(duì)索引的建立、刪除等操作,通過(guò)為每個(gè)分出的詞建立索引,查詢時(shí)只需遍歷索引,從而極大地提高檢索效率;org.a-pache.lucene.store包實(shí)現(xiàn)對(duì)索引文件的存儲(chǔ)管理;A(chǔ)結(jié)構(gòu)封裝是Lucene的基礎(chǔ),包括文檔管理和公用類。其中org.apache.lucene.document實(shí)現(xiàn)對(duì)文檔信息和域信息的管理;org.apache.lucene.util作為公共類,實(shí)現(xiàn)一些優(yōu)化的數(shù)據(jù)結(jié)構(gòu)和算法。對(duì)外接口包括檢索和語(yǔ)言分析器,org.apache.lucene.analysis是語(yǔ)言分析器,主要用于切分詞,把輸入的文本分成一個(gè)個(gè)可供索引模塊處理的“詞語(yǔ)”。org.apache.lucene.search是檢索管理器,提供用戶檢索接口,可以實(shí)現(xiàn)根據(jù)用戶輸入的查詢條件進(jìn)行查詢。org.apache.lucene.QueryParser是查詢分析器,其作用是解析用戶輸入的查詢語(yǔ)句,對(duì)查詢語(yǔ)句進(jìn)行分析,然后返回一個(gè)查詢對(duì)象(query),它還可以自定義查詢規(guī)則,以實(shí)現(xiàn)像Google一樣能支持查詢條件的與、或、非等復(fù)合查詢方式。

  3.2Lucene檢索流程基于Lucene的全文搜索,包含索引管理和搜索索引兩個(gè)基本過(guò)程,其數(shù)據(jù)處理流程如圖2所示。圖2Lucene數(shù)據(jù)處理流程3.2.1索引管理在創(chuàng)建索引時(shí),先將被索引(待搜索的數(shù)據(jù))的內(nèi)容,作為文檔(Document)信息,傳給IndexWriter對(duì)象,在In-dexWriter對(duì)象中,指定語(yǔ)言分析器 Analyzer。語(yǔ)言分析器自動(dòng)對(duì)文檔進(jìn)行分詞處理,將文檔分成一個(gè)個(gè)單獨(dú)的單詞,其中還要進(jìn)行去除標(biāo)點(diǎn)符號(hào)和停用詞(像英語(yǔ)中的a、the、or等使用頻率很多的冠詞、介詞、副詞或連詞)等處理,形成“詞元(Token)”。詞元傳遞給語(yǔ)言處理器進(jìn)行相關(guān)處理,形成“詞(Term)”,對(duì)于英語(yǔ)形式的詞元進(jìn)行語(yǔ)言處理時(shí),一般做以下工作:將詞元變?yōu)樾憽⒃~元縮減為詞根形式(例如“cars”轉(zhuǎn)換成“car”)、將詞元轉(zhuǎn)變?yōu)樵~根形式(例如“drove”轉(zhuǎn)換“drive”)等。最后索引組件依據(jù)語(yǔ)言處理產(chǎn)生的詞形成詞典,采用倒排索引法,形成一定數(shù)據(jù)結(jié)構(gòu)的索引文件。3.2.2搜索索引Lucene是針對(duì)索引進(jìn)行查詢的。先將用戶輸入的查詢信息傳遞給 QueryParser對(duì)象,該對(duì)象采用建立索引時(shí)類似的分詞方法和語(yǔ)言處理方法,得到需要查詢的單詞和查詢關(guān)鍵詞;再根據(jù)查詢語(yǔ)句的語(yǔ)法規(guī)則,進(jìn)行語(yǔ)法分析,創(chuàng)建一棵語(yǔ)法樹,形成 Query對(duì)象;最后由IndexSearcher對(duì)象打開、讀取索引目錄中的索引文件,在反向索引表中,分別找出需要查詢的單詞文檔鏈表,并根據(jù)語(yǔ)法樹對(duì)文檔鏈表進(jìn)行交、差、并等操作,得到結(jié)果文檔。

  3.3Lucene索引機(jī)制索引是Lucene進(jìn)行全文搜索的基礎(chǔ),關(guān)系到檢索的效率。在Lucene中,分析器只能對(duì)文本數(shù)據(jù)進(jìn)行解析,并產(chǎn)生索引,對(duì)于其它類型的數(shù)據(jù),需要將其轉(zhuǎn)換成文本數(shù)據(jù)后,提交給分析器進(jìn)行處理。Lucene在管理索引時(shí),是通過(guò)索引文件管理的,在索引文件中既保存正向信息,也保存反向信息。

  3.3.1正向信息在Lucene中,索引結(jié)構(gòu)是一種層次結(jié)構(gòu)。索引(in-dex)由段(segment)組成,段由記錄(document)組成,記錄由域(field)組成,域由詞(term)組成。每個(gè)層次都保存了本層次的信息以及下一層次的元信息,也即屬性信息,其結(jié)構(gòu)如圖3所示。應(yīng)用Lucen提供了全文檢索框架,具備完整的查詢引擎和索引引擎,為數(shù)據(jù)訪問(wèn)和管理提供了簡(jiǎn)單的函數(shù)調(diào)用接口。在應(yīng)用Lucene搭建全文檢索系統(tǒng)時(shí),由于應(yīng)用領(lǐng)域不同,需要進(jìn)行二次開發(fā),以擴(kuò)展系統(tǒng)功能。

  4構(gòu)建數(shù)據(jù)采集器

  4.1構(gòu)建數(shù)據(jù)采集器能被Lucene索引的數(shù)據(jù)是文本數(shù)據(jù)。實(shí)際應(yīng)用中,待檢索數(shù)據(jù)有許多種格式和來(lái)源,例如:PDF文件、Word文件、XML文件,以及互聯(lián)網(wǎng)的網(wǎng)頁(yè)文件。在具體實(shí)施時(shí),需要按照應(yīng)用需求,對(duì)這些不同格式的文件分別進(jìn)行處理,從中提取出純文本格式信息,并建立對(duì)應(yīng)的Lucene文檔,再提交給索引管理器進(jìn)行索引。在處理PDF文件、Word文件等二進(jìn)制文件時(shí),可以借助第三方的接口和應(yīng)用程序,對(duì)文件進(jìn)行數(shù)據(jù)提取。例如在處理PDF文件時(shí),可以使用PDFBox接口進(jìn)行文件分析并提取數(shù)據(jù);在處理 Word文件時(shí),可以使用JACOB、POI等從中提取數(shù)據(jù)等;在處理互聯(lián)網(wǎng)上的網(wǎng)頁(yè)時(shí),可以通過(guò)網(wǎng)絡(luò)爬蟲等方式對(duì)網(wǎng)頁(yè)數(shù)據(jù)抓取,并使用網(wǎng)頁(yè)分析技術(shù),先去掉其中的 HTML標(biāo)記,再提取網(wǎng)頁(yè)內(nèi)容。

  4.2擴(kuò)展分詞器Lucene在 org.apache.lucene.analysis中定義了接口,提供了可供應(yīng)用系統(tǒng)使用的語(yǔ)言處理能力。Lucene默認(rèn)已經(jīng)實(shí)現(xiàn)了英文等語(yǔ)言的簡(jiǎn)單詞法分析邏輯(按照空格分詞,并去除常用的語(yǔ)法詞,如英語(yǔ)中的is、am、are等)。但是,在具體應(yīng)用時(shí),由于每個(gè)語(yǔ)種的習(xí)慣和處理詞的方法差異較大,例如在漢語(yǔ)中詞語(yǔ)的分割與英語(yǔ)就有很大的不同。因此,使用Lucene提供的ChineseAnalyzer和CJKAnalyzer對(duì)中文分詞效果并不明顯,不能滿足系統(tǒng)對(duì)中文的分詞要求,此時(shí)可以采用analysis接口實(shí)現(xiàn)的方式,自定義分詞算法,以實(shí)現(xiàn)對(duì)中文的個(gè)性化分詞。

  5結(jié)語(yǔ)

  Lucene本質(zhì)上是一個(gè)信息檢索的類庫(kù)(Library),它具有高效、簡(jiǎn)潔、易用的特點(diǎn),在信息檢索中有著非常廣泛的應(yīng)用。Lucene采用了倒排索引技術(shù),實(shí)現(xiàn)了高效的索引管理和檢索。Lucene只以文本格式的數(shù)據(jù)作為索引對(duì)象,在實(shí)際應(yīng)用中,可以開發(fā)針對(duì)各種不同類型數(shù)據(jù)的采集器,以擴(kuò)展系統(tǒng)數(shù)據(jù)處理的廣度;可以在Lucene提供的分詞器基礎(chǔ)上,針對(duì)語(yǔ)言系統(tǒng)特點(diǎn),開發(fā)新的分詞器,以擴(kuò)展系統(tǒng)數(shù)據(jù)處理的深度。

【全文檢索引擎Lucene系統(tǒng)模型和應(yīng)用探究論文】相關(guān)文章:

物聯(lián)網(wǎng)應(yīng)用論文07-26

控制系統(tǒng)論文12-07

物資管理系統(tǒng)論文07-31

庫(kù)存管理系統(tǒng)論文07-21

關(guān)于大數(shù)據(jù)時(shí)代下的隱私保護(hù)探究論文04-14

智能樓宇監(jiān)控系統(tǒng)論文01-02

信息管理系統(tǒng)論文02-15

決策支持系統(tǒng)論文08-02

圖書管理系統(tǒng)論文11-09

學(xué)生信息管理系統(tǒng)論文07-14