亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        全文檢索引擎Lucene系統(tǒng)模型與應用研究

        2015-06-24 06:44:41張吳波史旅華李貴榮
        軟件導刊 2015年6期
        關鍵詞:全文檢索分詞

        張吳波 史旅華 李貴榮

        摘要:大數(shù)據(jù)時代下信息爆炸式增長,全文檢索技術是提高信息檢索效率的有效方法。Lucene是一個采用Java編寫的全文搜索引擎框架,它運用了面向對象的設計思想,提供了豐富的API。對Lucene的系統(tǒng)結構、索引流程、索引機制進行了詳細分析,對應用Lucene引擎搭建全文搜索系統(tǒng)的關鍵問題進行了研究。

        關鍵詞:全文檢索;Lucene;倒排索引;分詞

        DOIDOI:10.11907/rjdk.151168

        中圖分類號:TP319

        文獻標識碼:A 文章編號

        文章編號:16727800(2015)006012703

        作者簡介作者簡介:張吳波(1977-),男,湖南邵陽人,湖北汽車工業(yè)學院電氣與信息工程學院講師,研究方向為軟件開發(fā)。

        0 引言

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

        1 全文檢索技術

        全文檢索是以各種計算機數(shù)據(jù),諸如文字、聲音、圖像等為處理對象,提供按照數(shù)據(jù)資料的內(nèi)容,而不是外在特征來實現(xiàn)的信息檢索手段[2]。相對于一般的DBMS,可以將Word文檔、郵件、網(wǎng)頁等非結構化、半結構化數(shù)據(jù)作為檢索對象。

        全文檢索最初是以字符串匹配程序實現(xiàn)的,即在待查找的文件中,打開每個文件后,對文件內(nèi)容從頭到尾檢索,如果其中包含需要查詢的字符串,則將它作為結果文件。這種順序檢索效率較低,因此,全文檢索都是通過“索引”技術實現(xiàn)的。其過程是由計算機索引程序掃描文件中的每一個詞,然后對每個詞建立一個索引,并指明該詞在文章中出現(xiàn)的次數(shù)和位置。當用戶查詢時,由檢索程序對已建立的索引進行查找,得到所需要的文件[3]。

        2 全文搜索引擎Lucene

        Lucene是一個非常優(yōu)秀、成熟、開源、免費、采用Java語言編寫的全文檢索引擎工具。它提供了豐富的API,可以與存儲在索引中的信息方便地交互,并能方便地嵌入到各種應用系統(tǒng)中,實現(xiàn)針對應用的全文索引/檢索功能。

        Lucene運用了大量的面向對象設計思想。首先定義了一個與平臺無關的索引文件格式,其次通過抽象系統(tǒng)的核心組成部分設計為抽象類,具體的平臺實現(xiàn)部分設計為抽象類的實現(xiàn),此外與具體平臺相關的部分比如文件存儲也封裝為類,經(jīng)過層層的面向對象式處理,最終達成一個低耦合、高效率、容易二次開發(fā)的檢索引擎系統(tǒng)[4]。

        目前,Lucene得到了廣泛應用,許多Java項目都使用了Lucene作為其后臺的全文搜索引擎,比較著名的有:Jive(Web論壇系統(tǒng))、Eyebrows(郵件列表HTML歸檔/瀏覽/查詢系統(tǒng))、Cocoon(基于XML的Web發(fā)布框架)等。

        3 Lucene系統(tǒng)模型

        3.1 Lucene系統(tǒng)結構

        Lucene搜索引擎由基礎結構封裝、索引核心、對外接口、查詢分析器4大部分組成,如圖1所示。

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

        3.2 Lucene檢索流程

        基于Lucene的全文搜索,包含索引管理和搜索索引兩個基本過程,其數(shù)據(jù)處理流程如圖2所示。

        3.2.1 索引管理

        在創(chuàng)建索引時,先將被索引(待搜索的數(shù)據(jù))的內(nèi)容,作為文檔(Document)信息,傳給IndexWriter對象,在IndexWriter對象中,指定語言分析器Analyzer。語言分析器自動對文檔進行分詞處理,將文檔分成一個個單獨的單詞,其中還要進行去除標點符號和停用詞(像英語中的a、the、or等使用頻率很多的冠詞、介詞、副詞或連詞)等處理,形成“詞元(Token)”。詞元傳遞給語言處理器進行相關處理,形成“詞(Term)”,對于英語形式的詞元進行語言處理時,一般做以下工作:將詞元變?yōu)樾?、將詞元縮減為詞根形式(例如“cars”轉換成“car”)、將詞元轉變?yōu)樵~根形式(例如“drove”轉換“drive”)等。最后索引組件依據(jù)語言處理產(chǎn)生的詞形成詞典,采用倒排索引法,形成一定數(shù)據(jù)結構的索引文件。

        3.2.2 搜索索引

        Lucene是針對索引進行查詢的。先將用戶輸入的查詢信息傳遞給QueryParser對象,該對象采用建立索引時類似的分詞方法和語言處理方法,得到需要查詢的單詞和查詢關鍵詞;再根據(jù)查詢語句的語法規(guī)則,進行語法分析,創(chuàng)建一棵語法樹,形成Query對象;最后由IndexSearcher對象打開、讀取索引目錄中的索引文件,在反向索引表中,分別找出需要查詢的單詞文檔鏈表,并根據(jù)語法樹對文檔鏈表進行交、差、并等操作,得到結果文檔。

        3.3 Lucene索引機制

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

        3.3.1 正向信息

        在Lucene中,索引結構是一種層次結構。索引(index)由段(segment)組成,段由記錄(document)組成,記錄由域(field)組成,域由詞(term)組成。每個層次都保存了本層次的信息以及下一層次的元信息,也即屬性信息[6],其結構如圖3所示。

        3.3.2 反向信息

        反向信息是索引文件的核心,記錄的是倒排索引表。倒排索引源于實際應用中根據(jù)屬性的值來查找記錄的方式。索引表中的每一項都包括一個屬性值和該屬性值記錄的地址。在Lucene中,索引表中的項是文檔單詞,其屬性是包含單詞的文檔號、在文檔中的出現(xiàn)頻次及位置,如圖4所示。反向信息主要包括倒排索引表中的詞典(Term Dictionary)和倒排表(Posting List)。

        4 Lucene應用

        Lucen提供了全文檢索框架,具備完整的查詢引擎和索引引擎,為數(shù)據(jù)訪問和管理提供了簡單的函數(shù)調(diào)用接口。在應用Lucene搭建全文檢索系統(tǒng)時,由于應用領域不同,需要進行二次開發(fā),以擴展系統(tǒng)功能。

        4.1 構建數(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 結語

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

        參考文獻:

        [1]劉東君.基于Lucene非結構化文檔全文檢索系統(tǒng)研究與實現(xiàn)[J].軟件導刊,2013,12(10):100102.

        [2]李永春.Lucene的全文檢索的研究與應用[J].計算機技術與發(fā)展,2010,20(2):1215.

        [3]李明宙.Lucene全文檢索引擎的結構機制與應用方式[J].廣西科學院學報,2012,26(4):433435.

        [4]周平.Lucene全文檢索引擎技術及應用[J].重慶工學院學報:自然科學版,2007,21(4):8688.

        [5]何偉.基于Lucene的全文搜索引擎的設計與實現(xiàn)[J].情報雜志,2006(9):8890.

        [6]黃少林.基于Lucene的索引系統(tǒng)設計與實現(xiàn)[J].現(xiàn)代情報,2009,29(7):169171.

        責任編輯(責任編輯:杜能鋼)

        猜你喜歡
        全文檢索分詞
        分詞在英語教學中的妙用
        結巴分詞在詞云中的應用
        智富時代(2019年6期)2019-07-24 10:33:16
        基于MySQL的中文全文搜索研究
        基于Lucene全文檢索技術的優(yōu)化探討
        值得重視的分詞的特殊用法
        Oracle數(shù)據(jù)庫全文檢索性能研究
        基于KySou的全文檢索系統(tǒng)的分析與優(yōu)化
        特色數(shù)據(jù)庫全文檢索系統(tǒng)的設計
        高考分詞作狀語考點歸納與疑難解析
        論英語不定式和-ing分詞的語義傳承
        外語學刊(2011年3期)2011-01-22 03:42:20
        又色又爽又高潮免费视频国产| 国产精品黄色av网站| 亚洲av三级黄色在线观看| 国产成人av乱码在线观看| 日本高清www无色夜在线视频| 亚洲 无码 制服 丝袜 自拍| 亚洲一区二区三区厕所偷拍| 日本精品一区二区高清| 无码日韩精品一区二区三区免费| 99热最新在线观看| 午夜精品一区二区三区视频免费看| 亚洲精品中文字幕一区二区| 国产精品伦一区二区三级视频| 人妻少妇精品无码专区二| 亚洲一区二区三区一站| 中文字幕一区二区三区视频| 欧美精品一区二区蜜臀亚洲| 亚洲中文字幕在线爆乳| 日本在线观看一区二区视频| 伊人久久大香线蕉av不变影院| 亚洲日韩欧洲无码av夜夜摸 | 一区二区三区国产大片| 亚洲精品在线国产精品| 久久中文字幕无码专区| 亚洲AV无码专区国产H小说| 麻豆国产精品久久天堂| 色88久久久久高潮综合影院| 1717国产精品久久| 久久精品日本美女视频| 亚洲av无一区二区三区久久蜜桃 | 日本a级黄片免费观看| 天堂网在线最新版www| 亚洲男人天堂2017| 伊人狼人影院在线视频| 极品美女扒开粉嫩小泬图片| 国产乱人伦av在线无码| h动漫尤物视频| 亚洲色图在线免费视频| 高潮又爽又无遮挡又免费| 欧美日韩中文字幕久久伊人| 国产精品高清国产三级国产av|