《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于Lucene的全文檢索系統模型的研究及應用
基于Lucene的全文檢索系統模型的研究及應用
來源:微型機與應用2011年第1期
梁 弼,王光瓊,鄧小清
(四川文理學院 計算機科學系,四川 達州 635000)
摘要: 分析了Lucene的系統結構及檢索原理,設計了一個基于Lucene的全文檢索系統模型,并將該系統模型應用到自動答疑系統中進行實驗。實驗結果表明,以Lucene作為核心的檢索系統不僅建立索引的效率高,而且檢索速度也較快。
Abstract:
Key words :

摘  要: 分析了Lucene的系統結構及檢索原理,設計了一個基于Lucene的全文檢索系統模型,并將該系統模型應用到自動答疑系統中進行實驗。實驗結果表明,以Lucene作為核心的檢索系統不僅建立索引的效率高,而且檢索速度也較快。
關鍵詞: Lucene;全文檢索;索引;搜索速度

 隨著信息技術的快速發展,互聯網上的信息呈爆炸式增長,這種趨勢使得用戶在得到更多信息的同時,也不可避免地加劇用戶篩選信息的難度,為了使用戶在海量數據中能快速地找到有效數據,高性能的信息檢索系統顯得越來越重要。
 對海量數據檢索而言,全文檢索是唯一高效的解決方案。以前借助商業數據庫(如SQL Server)提供的全文檢索,由于其運行環境、效率或商業成本方面的原因無法滿足需求?,F在一般通過Lucene將數據庫中的數據全部索引,然后提供查詢,進而實現對數據的全文檢索[1]。本文通過剖析開放源碼的全文檢索技術——Apache Lucene,構建了一個基于Lucene的全文檢索系統模型,并結合Struts、Ajax等相關技術,設計并實現了一個以Lucene作為核心的自動答疑系統。
1 Lucene全文檢索
 Lucene是一個用Java語言實現、成熟、開源的軟件項目,是一個高性能、可擴展的信息檢索工具集,可以方便快捷地融入到應用程序中,以增加索引和搜索功能。
1.1 Lucene的系統結構
 Lucene的系統結構采用分層的方式構建,各模塊間基于協議進行交互,形成了具有松耦合特征的體系結構,這大大增強了系統的彈性。Lucene系統主要由基礎結構封裝、索引核心和對外接口三大部分組成,其結構如圖1所示[2]。
 從圖1可以看出,Lucene的源碼主要分為7個模塊,其核心類有3個,分別是:analysis、index和search。analysis主要用于切分詞,切分詞的具體工作由analyzer的擴展類來實現;index主要提供庫的讀寫接口,通過它可以創建庫、添加刪除記錄以及讀取記錄等;search主要提供檢索接口,通過該包可以輸入條件并得到查詢結果集,與queryPaser包配合還可以自定義查詢規則。

1.2 Lucene檢索原理
 Lucene的檢索算法屬于索引檢索,即用空間來換取時間,對需要檢索的文件或字符流進行全文索引,在檢索的時候對索引進行快速搜索,得到檢索位置,該位置記錄了檢索詞出現的文件路徑或者某個關鍵詞。實際上,Lucene的檢索過程是將模糊查詢變成多個利用索引進行精確查詢的邏輯組合過程。并且,Lucene的API接口設計比較通用,很多傳統應用的文件、數據庫等都可以方便地映射到Lucene的存儲結構/接口中。因此,在一定程度上可以把Lucene看著一個支持全文索引的數據庫系統,其檢索原理如圖2所示[3]。

2 系統模型
 根據開源Lucene的相關理論知識(如檢索原理),構建了一個通用、易于擴展、基于Lucene的全文檢索系統模型,具體模型如圖3所示。該模型主要包括的功能模塊有文檔抽取模塊、全文檢索核心處理模塊和輸入輸出模塊。其中,全文檢索核心處理模塊是模型中最重要的模塊[4]。
 由圖3可知,基于Lucene的全文檢索系統處理的數據源可以是一些常見的文檔格式,如Text、Word以及HTML等,系統首先通過文檔解析器提取出這些文檔的原始數據信息并保存為Lucene能夠處理的文檔類型(Document),然后Lucene的索引器將接收這些文檔,并對其內容進行分析,最后提取索引項并生成索引庫。然后以索引庫為基礎,可以設計滿足各種查詢需求的檢索器和符合用戶使用特點的可視化個性操作界面,并將查詢結果展現給用戶。

3 模型應用
 在遠程網絡教育中,若能對以前所提的問題和已經回答過的答案進行全文檢索,用戶便可以在系統中找到自己需要的答案,實現自動答疑的目的。
3.1 系統設計
 根據前面設計的Lucene全文檢索系統模型,采用Struts框架作為系統的整體基礎架構,并運用Ajax對Struts在表示層上的補充[5],設計并開發一個自動答疑系統,該自動答疑系統的總體設計如圖4所示。

 從圖4可以看出,該自動答疑系統采用表現層、業務邏輯層和數據庫層的三層結構設計模式。其中,表現層為用戶界面,它為用戶提供交互接口,主要包括查詢界面和問答添加界面,并采用Struts-tags和Ajax技術來實現,通過Ajax技術可以實現按需取數據、局部更新頁面的功能,從而增強了用戶體驗[6]。業務邏輯層主要完成問答的全文檢索功能,具體包括在查詢問題時檢索索引庫和從關系數據庫取出問答并向索引庫中添加索引文件,主要采用Struts和Lucene技術來完成。其中,Struts是一個優秀的基于MVC(Model View Controller)模式的開源框架,它通過控制器將表示邏輯和業務邏輯解耦。數據庫層完成問題收集功能,對提出的問題和相應的答案添加到數據庫中,使用MySQL來保存所有問答,或直接存放在硬盤目錄上。
3.2 關鍵技術
 實現該自動答疑系統的關鍵技術主要集中在中文分詞、索引管理和結果排序三方面。
 (1)中文分詞
 在Lucene中執行分詞任務的是Analyzer對象,該對象中最關鍵的方法是TokenStream方法,通過執行該方法可以返回一個包含token的集合,也即TokenStream對象。TokenStream本身是一個有著類似迭代器接口的抽象類,其具體類有兩種:一種是以Reader對象作為輸入的Tokenizer對象,另一種是以另一個TokenStream對象作為輸入的TokenFilter。因此在該自動答疑系統中,問題分詞采用Lucene Analyzer分詞器來實現,即首先創建自己的Analyzer對象,以及與其相關的Tokenizer和TokenFilter,然后通過這幾個類的有機配合進而實現問題的中文分詞。
 (2)索引管理
 從根本上說,索引管理主要包括兩方面內容:建立索引和基于索引進行的檢索。
建立索引是對文本內容切分詞后索引入庫。切分后的token通過Lucene.index索引器的處理最終添加到索引庫中,Lucene.store存儲器負責數據存儲管理,主要包括一些底層的I/O操作。核心代碼如下:
 Analyzer luceneAnalyzer=new StandardAnalyzer();
 IndexWriter indexWriter=new IndexWriter(indexDir,luceneAnalyzer,true);
 indexWriter.addDocument(document);
 檢索是在建立好的索引上進行的搜索,并根據查詢條件返回結果。其核心代碼如下:
 QueryParser queryParser=new QueryParser(field,new StandardAnalyzer());
 Query luceneQuery=queryParser.parse(QueryString);
 IndexSearcher  indexSearcher=new IndexSearcher(IndexReader.open(indexDir));
 Hits hits=indexSearcher.search(luceneQuery);(hits用來保存檢索結果集的對象)
 (3)結果排序
 排序的基本原則是盡可能地把對用戶更有價值的問題排在前面而不影響性能。Lucene是按照自己的相關度算法(score)對結果進行排序的,除了匹配score外,還可以用索引記錄的ID來進行排序,所以較為高效的排序方法是:在索引時,讓進入Lucene全文的順序對應著一定的規則(如用戶對問答的評價值越高反映該問題的價值越高),而在檢索時讓檢索結果按照索引記錄的ID進行倒排文檔(invert document)。
3.3 實驗結果
 本實驗的硬件環境為處理器:Intel Pentium 4 CPU 3.20 GHz(2 CPUs),內存:三星DDR2 1 GB,硬盤:酷睿 120 GB等;軟件環境為JKD 1.6,Eclipse 3.2,MyEclipse 6.5,Tomcat 6.0,MySQL 5.0等。實驗時使用所設計的自動答疑系統,不僅對存儲在關系數據庫和存放在硬盤目錄上不同大小的問答文本文件建立索引所花費時間進行對比,而且還對關系數據庫和索引庫中的問答文件進行檢索所需的時間進行比較,具體實驗結果如表1所示。

 從表1可以看出,同樣采用Lucene作為檢索系統的核心,數據源同為文本文件時,對硬盤文件目錄建立的索引的效率要比對關系數據庫建立索引的效率要高,對索引庫中的文件檢索速度比對關系數據庫中文件檢索速度要快,并且隨著數據源的增大,效果越來越明顯,實驗結果基本符合理論要求。
Lucene是當前比較成熟的檢索技術,利用它可以方便地實現全文檢索。本文在剖析Lucene相關技術的基礎上,構建了一個基于Lucene的全文檢索系統模型,并將該模型應用到一個具體實例——自動答疑系統中進行實驗,實驗結果表明,以Lucene為核心的檢索系統不僅建立索引的效率高,而且檢索速度也較快。
參考文獻
[1] 郎小偉,王申康.基于Lucene的全文檢索系統的研究與開發[J].計算機工程,2006,4(2):95-99.
[2] 李晶,文登敏.基于Lucene的全文檢索引擎的研究與應用[J].淮陰工學院學報,2008(2):57-59.
[3] 劉建湘,楊文濤.基于Lucene的搜索引擎在Struts中的應用[J].軟件導刊,2007(2):53-54.
[4] 吳青,夏紅霞.基于Lucene的全文檢索引擎的應用與改進[J].武漢理工大學學報,2008,7(30):145-147.
[5] 孫曉峰.基于輕量級框架的互動問答平臺的設計與實現[D].北京:中國地質大學,2008(5):13-23.
[6] 諶湘倩,狄文輝.基于SSH框架與AJAX技術的Java Web應用開發[J].計算機工程與設計,2009,30(10):2590-2592.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品理论片在线观看| 伊人春色精品| 亚洲人体影院| 亚洲国产精品久久人人爱蜜臀| 欧美亚韩一区| 国产视频一区在线观看一区免费| 久久九九久精品国产免费直播| 久久精品九九| 久久精品人人做人人爽电影蜜月| 这里只有精品视频| 国产伦精品一区二区三区照片91| 中文精品视频一区二区在线观看| 亚洲精品女av网站| 亚洲欧美日韩一区在线| 国产精品a久久久久| 国产一区二区三区的电影| 久久久综合网| 老色批av在线精品| 亚洲欧美视频| 免费观看国产成人| 欧美福利视频在线观看| 国产婷婷成人久久av免费高清| 欧美中文字幕在线观看| 国产丝袜一区二区| 亚洲精品一区二区三区av| 在线综合亚洲欧美在线视频| 精品成人国产在线观看男人呻吟| 国产精品人人做人人爽人人添| 欧美成人性生活| 欧美亚洲系列| 欧美日韩综合在线| 欧美激情一二三区| 黄色工厂这里只有精品| 国内精品美女av在线播放| 国产一区二区中文字幕免费看| 欧美视频在线观看一区| 亚洲三级色网| 亚洲精品123区| 欧美人与性动交cc0o| 激情六月婷婷综合| 欧美日韩国产综合新一区| 亚洲一区中文字幕在线观看| 久久久精品一区二区三区| 亚洲福利在线观看| 亚洲欧美一区在线| 欧美激情性爽国产精品17p| 在线欧美视频| 欧美国产精品人人做人人爱| 国产精品久久久久一区二区三区共| 亚洲丶国产丶欧美一区二区三区| 欧美日韩免费观看中文| 伊人色综合久久天天五月婷| 欧美激情一区二区三区成人| 亚洲一区二区三区在线看| 久久精品一区二区三区不卡牛牛| 国产深夜精品| 久久久久久精| 91久久国产综合久久蜜月精品| 日韩亚洲精品在线| 亚洲激情av| 在线播放豆国产99亚洲| 99视频精品在线| 国产精品美女主播在线观看纯欲| 99精品国产在热久久| 久久久久久久久久码影片| 欧美区国产区| 亚洲国产精品热久久| 国产精品国产精品| 欧美日韩免费在线视频| 免费h精品视频在线播放| 欧美激情精品久久久久久免费印度| 亚洲综合精品一区二区| 亚洲国产日韩欧美一区二区三区| 亚洲一区欧美激情| 欧美成人中文字幕| 欧美激情精品久久久久久变态| 在线日韩一区二区| 午夜在线视频一区二区区别| 欧美日韩三级视频| 在线色欧美三级视频| 久久亚洲一区二区| 麻豆国产精品va在线观看不卡| 欧美黑人多人双交| 欧美成人a∨高清免费观看| 亚洲一区二区三区视频| 亚洲第一伊人| 国产精品日韩欧美大师| 欧美影院成人| 性做久久久久久久免费看| 欧美午夜美女看片| 免播放器亚洲一区| 国产精品高潮呻吟久久| 久久综合九色综合久99| 精品福利av| 久久精品视频免费观看| 亚洲丰满少妇videoshd| 欧美日韩亚洲一区在线观看| 欧美日韩一区二区在线| 国产精品久久久久影院色老大| 欧美男人的天堂| 亚洲精品永久免费| 久久久久久久久久久成人| 狠狠色丁香久久婷婷综合_中| 亚洲午夜精品久久久久久app| 欧美视频在线观看一区| 欧美成人国产va精品日本一级| 91久久精品美女| 99re6热只有精品免费观看| 伊人蜜桃色噜噜激情综合| 在线国产精品一区| 亚洲欧洲精品天堂一级| 亚洲国产精品久久久久秋霞不卡| 亚洲人成网在线播放| 伊人久久亚洲美女图片| 日韩一级成人av| 欧美激情综合色| 国产日韩精品一区二区浪潮av| 亚洲国产欧美一区二区三区同亚洲| 久久精品国产99国产精品| 欧美麻豆久久久久久中文| 日韩一区二区福利| 国产精品狼人久久影院观看方式| 欧美一区二区三区四区在线| 在线免费高清一区二区三区| 免费不卡在线观看| 欧美二区在线看| 小黄鸭精品aⅴ导航网站入口| 亚洲天堂网站在线观看视频| 国产日韩精品视频一区二区三区| 国产一区二区三区四区在线观看| 亚洲成人在线视频网站| 老色批av在线精品| 国产精品国产三级国产专播品爱网| 午夜精品久久久99热福利| 久久久精品动漫| 欧美人牲a欧美精品| 欧美大胆成人| 欧美国产第二页| 欧美精品黄色| 欧美中文在线观看国产| 国产精品国产三级欧美二区| 国产一区二区三区久久| 在线观看欧美视频| 国产精品久久久久77777| 久久一区二区三区av| 欧美午夜精品久久久久久浪潮| 欧美久久久久久蜜桃| 久久精品日韩欧美| 久久久精品免费视频| 欧美一区二区三区在线视频| 久久视频在线视频| 在线观看欧美视频| 国产一区久久| 毛片基地黄久久久久久天堂| 在线午夜精品自拍| 欧美色偷偷大香| 亚洲精品中文字幕在线观看| 伊人久久婷婷色综合98网| 欧美精品v日韩精品v韩国精品v| 久久精品国产清高在天天线| 国内精品福利| 亚洲少妇自拍| 在线看成人片| 亚洲一本大道在线| 老色鬼精品视频在线观看播放| 欧美成ee人免费视频| 亚洲一二区在线| 久久噜噜噜精品国产亚洲综合| 欧美一区激情| 中文成人激情娱乐网| 日韩一级黄色片| 国产日韩综合| 亚洲字幕一区二区| 久久久久久久波多野高潮日日| 欧美高清视频在线播放| 一本不卡影院| 裸体女人亚洲精品一区| 久久精品国产亚洲一区二区| 欧美亚洲不卡| 久久人人97超碰国产公开结果| 欧美三级欧美一级| 国产一区二区高清不卡| 亚洲第一在线综合在线| 国产日韩在线看片| 日韩一级欧洲| 亚洲大片免费看| 欧美一激情一区二区三区| 国产精品久久综合| 亚洲欧洲一区| 好吊色欧美一区二区三区视频| 国产一区久久久| 9人人澡人人爽人人精品| 欧美美女操人视频| 欧美日本不卡高清| 欧美激情一区在线| 性久久久久久久久久久久| 免费h精品视频在线播放| 亚洲国产精品久久久久秋霞不卡| 欧美夫妇交换俱乐部在线观看| 亚洲素人一区二区| 欧美美女福利视频| 国产美女精品| 欧美三级电影精品| 国产精品久久久久一区二区三区| 一区在线电影| 国内成+人亚洲+欧美+综合在线| 久久久91精品国产一区二区精品| 久久精品国产亚洲a| 国产自产女人91一区在线观看| 亚洲性感激情| 亚洲欧洲一区二区三区在线观看| 久久国产综合精品| 欧美一区二区三区在线观看视频| 一区二区三区**美女毛片| 国产精品视频xxxx| 欧美日韩国产在线观看| 99国产精品久久久| 亚洲激情第一页| 一区免费观看视频| 国产一区二区三区久久久久久久久| 国产精品qvod| 欧美在线一区二区| 国产精品视频yy9099| 国产精品www色诱视频| 亚洲美女淫视频| 久久精品人人做人人综合| 一区二区三区福利| 尤物99国产成人精品视频| 国产精品欧美日韩一区| 欧美专区在线观看一区| 亚洲午夜一区二区三区| 欧美大秀在线观看| 欧美日韩ab| 香蕉免费一区二区三区在线观看| 欧美日韩免费区域视频在线观看| 亚洲国产精品国自产拍av秋霞| 麻豆精品国产91久久久久久| 亚洲欧洲精品成人久久奇米网| 欧美人成免费网站| 最新亚洲电影| 亚洲欧美另类综合偷拍| 国内精品免费午夜毛片| 欧美大成色www永久网站婷| 亚洲手机在线| 国产一区二区三区四区三区四| 国产一区二区三区四区hd| 性欧美在线看片a免费观看| 久久免费精品日本久久中文字幕| 亚洲人成在线播放网站岛国| 日韩亚洲欧美成人| 欧美大片免费看| 国内成人精品视频| 裸体一区二区三区| 国产真实精品久久二三区| 欧美一区中文字幕| 一区二区久久久久| 亚洲人成久久| 老鸭窝亚洲一区二区三区| 亚洲国产成人不卡| 亚洲人成在线播放| 久久久欧美精品sm网站| 亚洲午夜小视频| 可以看av的网站久久看| 在线观看国产欧美| 亚洲自拍偷拍一区| 久久精品视频va| 国产亚洲一区二区精品| 欧美日韩一区免费| 新狼窝色av性久久久久久| 欧美性做爰毛片| 国内精品久久久久影院 日本资源| 国产亚洲一区在线播放| 精久久久久久| 国产在线国偷精品产拍免费yy| 国产一区清纯| 久久丁香综合五月国产三级网站| 亚洲性xxxx| 亚洲国产视频一区二区| 韩日欧美一区二区| 99国产精品视频免费观看| 日韩午夜在线| 欧美偷拍一区二区| 欧美国产高潮xxxx1819| 亚洲一区日韩在线| 国产精品亚洲成人| 欧美精品系列| 亚洲电影自拍| 久久一区中文字幕| 亚洲欧美三级在线| 国产亚洲一区二区在线观看| 欧美日韩在线视频首页| 亚洲一级黄色片| 亚洲韩国青草视频| 欧美精品日韩一区| 欧美日韩国产限制| 亚洲免费av片| 亚洲伦理精品| 亚洲欧美日韩人成在线播放| 国产精品theporn| 国产精品国产三级国产普通话蜜臀| 国产伦精品一区二区三区视频孕妇| 亚洲国产一区二区三区a毛片| 亚洲女人av| 亚洲人成网站色ww在线| 亚洲视频精品| 国内成+人亚洲| 性欧美大战久久久久久久免费观看| 国产美女高潮久久白浆| 欧美不卡高清| 精品成人一区二区| 国产网站欧美日韩免费精品在线观看| 今天的高清视频免费播放成人| 亚洲国产中文字幕在线观看| 久久精品av麻豆的观看方式| 欧美日韩亚洲一区二区三区在线观看| 精品福利免费观看| 欧美午夜剧场| 欧美视频在线一区| 男同欧美伦乱| 久久免费的精品国产v∧| 亚洲欧美在线x视频| 欧美日韩视频免费播放| 国产欧美一区二区三区沐欲| 欧美成人dvd在线视频| 久久夜色精品亚洲噜噜国产mv| 久久九九国产精品| 久久国产精品亚洲va麻豆| 欧美激情性爽国产精品17p|