成年人在线观看视频免费,国产第2页,人人狠狠综合久久亚洲婷婷,精品伊人久久

我要投稿 投訴建議

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

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

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

  引言

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

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

  1全文檢索技術

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

  2全文搜索引擎

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

  3Lucene系統(tǒng)模型

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

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

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

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

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

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

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

  5結(jié)語

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

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

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

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

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

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

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

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

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

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

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

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