999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java的全文檢索引擎Lucene的分析與研究

2008-12-31 00:00:00梁永霖
電腦知識與技術 2008年20期

摘要:Lucene 是一個用Java 寫的全文索引引擎工具包,訪問索引時間快,支持多用戶訪問,可以跨平臺使用。介紹了基于Java的全文檢索引擎Lucene,包括下載與配置,以及基本概念與實現機制,然后將Lucene與傳統數據庫系統的輸入輸出機制與查詢技術作了比較。

關鍵詞:傳統數據庫系統;全文檢索;Java; Lucene

中圖分類號:TP393文獻標識碼:A 文章編號:1009-3044(2008)20-30231-03

Research on the Full Text Retrieval Engine Lucene Based on Java

LIANG Yong-lin

(Shaoguan University, Shaoguan 512005,China)

Abstract: Lucene is a fulltextretrieval engine package written in Javalanguage. Ithashighaccess speed , supports multi-user accesses and can be used in a cross-platform way. This paper introduces the full text retrieval engine Lucene based on Java, including the downloading, Configuration, basic concepts and the implementation mechanism. Then, it is made compare the mechanism of input/output and query technology between Lucene and conventional database system.

key words: conventional database system; full text retrieval; Java; Lucene

隨著科技的發展和經濟的騰飛,圖書館、新聞出版、企業等單位電子數據激增,互聯網的迅猛發展,可供人們選擇的信息也迅速膨脹,如何有效利用日益增長的、海量的信息的問題變得越來越突出。 傳統的檢索方式越來越不符合發展的需要。人們對查詢方式的要求也越來越高,已不局限于使用計算機的標引檢索和布爾邏輯功能檢索。全文檢索系統因為檢索功能強大、操作容易而越來越受到廣大用戶的歡迎。

1 Lucene的簡介

Lucene 是一個基于 Java 的全文信息檢索工具包,它不是一個完整的搜索應用程序,而是為應用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一個開源項目,也是目前最為流行的基于 Java 開源全文檢索工具包(package)。

Lucene的作者Doug Cutting是一位資深全文索引/檢索專家,曾經是V-Twin搜索引擎(Apple的Copland操作系統的成就之一)的主要開發者,后來在Excite擔任高級系統架構設計師,目前從事于一些Internet底層架構的研究。他貢獻出的Lucene的目標是為各種中小型應用程序加入全文檢索功能。目前已經有很多應用程序的搜索功能是基于 Lucene 的,比較著名的有:

1)Jive:WEB論壇系統;

2)Eyebrows:郵件列表HTML歸檔/瀏覽/查詢系統;

3)Cocoon:基于XML的web發布框架,全文檢索部分使用了Lucene

4)Eclipse:基于Java的開放開發平臺,幫助部分的全文索引使用了Lucene

Lucene 能夠為文本類型的數據建立索引,所以我們只要能把索引的目標數據格式轉化成文本格式,Lucene 就能對文檔進行索引和搜索。比如,要對 HTML 文檔,PDF 文檔進行索引的話,首先需要把 HTML 文檔和 PDF 文檔轉化成文本格式,然后將轉化后的內容交給 Lucene 進行索引,接著把創建好的索引文件保存到磁盤或者內存中,最后根據用戶輸入的查詢條件在索引文件上進行查詢。不指定要索引的文檔格式使得 Lucene 能夠適用于幾乎所有的搜索應用程序[1]。

2 Lucene的下載和配置

2.1 Lucene的下載

Lucene在jakarta項目中的發布主頁:

http://jakarta.apache.org/Lucene/docs/index.html

以下網址主要針對windows用戶,其它操作系統的用戶可在jakarta項目發布主頁的網頁中查找相關下載。

Lucene的.jar包的下載網址(其中包括。jar和一個范例demo):

http://apache.oregonstate.edu/jakarta/Lucene/binaries/Lucene-1.4-final.zip

Lucene的源代碼下載網址:

http://www.signal42.com/mirrors/apache/jakarta/Lucene/source/Lucene-1.4-final-src.zip

Lucene的api下載網址:

http://jakarta.apache.org/Lucene/docs/api/index.html

2.2 Lucene的配置

首先,我們要確定已經進行了JDK的安裝以及Java使用環境的基本配置,即確保在某個平臺下能夠正確運行Java源代碼[2]。

接下來進入Lucene的配置:

普通使用者:在環境變量的CLASSPATH中添加Lucene的位置。比如:“D:\\java \\Lucene-1.4-final\\Lucene-1.4-final.jar;”。

Jbuilder使用者:在“Project”→“Project Properties”→“Required Libraries”進行添加。

Jsp使用者:也可以直接將Lucene-1.4-final.jar文件放到\\WEB-INF\\classes下。

3全文檢索的實現機制

3.1 Lucene的數據結構

Lucene的API接口設計的比較通用,輸入輸出結構都很像數據庫的表==>記錄==>字段,所以很多傳統的應用文件、數據庫等都可以比較方便的映射到Lucene的存儲結構/接口中。總體上看,可以先把Lucene當成一個支持全文索引的數據庫系統[3]。

Lucene和傳統數據庫的輸入輸出結果比較,如表1所示。

表1 Lucene與傳統數據庫系統的輸入輸出結果比較表

3.2 Lucene全文檢索與傳統數據庫like模糊查詢的比較

全文檢索 ≠ like \"%keyword%\"

索引是對數據庫表中一個或多個列的值進行排序的結構,它是一種特殊類型的數據庫對象,它與表有著密切的聯系。實際上,可以把索引理解成一種特殊的目錄,建立索引的目的就是提高數據檢索效率,改善數據庫工作性能,提高數據訪問速度。

索引提供指針以指向存儲在表中指定列的數據值,然后根據指定的排序次序排列這些指針。數據庫使用索引的方式與使用書的目錄很相似:通過搜索索引找到特定的值,然后跟隨指針到達包含該值的行,從而達到快速獲取信息的目的[4]。

由于數據庫的索引不是為全文檢索設計的,因此,使用like \"%keyword%\"時,數據庫索引是不起作用的。在使用like查詢時,搜索過程變成類似于一頁頁翻書的遍歷過程,對于含有模糊查詢的數據庫服務來說,like查詢對性能的危害是極大的。如果需要對多個關鍵詞進行模糊匹配,例如:like\"%keyword1%\" and like \"%keyword2%\" 其效率必然低下。

建立一個高效檢索系統的關鍵是建立一個類似于科技索引一樣的反向索引機制。將數據源(比如多篇文章)排序順序存儲的同時,有另外一個排好序的關鍵詞列表,用于存儲關鍵詞==>文章映射關系,利用這樣的映射關系索引:[關鍵詞==>出現關鍵詞的文章編號,出現次數(甚至包括位置:起始偏移量,結束偏移量),出現頻率],檢索過程就是把模糊查詢變成多個可以利用索引的精確查詢的邏輯組合的過程。從而大大提高了多關鍵詞查詢的效率,所以,全文檢索問題歸結到最后是一個排序問題。

由此,可以看出like模糊查詢對于數據庫系統的精確查詢是非常不確定的問題,這也是大部分數據庫系統對全文檢索支持有限的原因。Lucene最核心的特征是通過特殊的索引結構實現了傳統數據庫不擅長的全文索引機制,并提供了擴展接口,以方便針對不同應用的定制。

可以通過表2對比Lucene的全文索引與傳統數據庫系統的模糊查詢。

全文檢索和數據庫應用最大的不同在于:讓最相關的頭100條結果滿足98%以上用戶的需求。

4 結束語

本文介紹了全文檢索引擎Lucene,并與傳統數據庫系統作出了比較。Lucene實現了Java的非常強大的全文索引檢索功能,它可以應用到搜索引擎,中小企業網站站內檢索,個人用戶桌面搜索引擎建立,特定文檔檢索數據庫建立等。

參考文獻:

[1] 車東.基于Java的全文索引引擎Lucene簡介:關于作者和Lucene的歷史.[2007-06-16] http://www.chedong.com/tech/Lucene.html

[2] Otis Gospodnetic, Eric Hatcher.Lucene in Action[M]。 Greenwich :Manning Publications Co,2005.

[3] The Apache Jakarta Project.Lucene Docs[2007-05-20]http://jakarta.apache.org/lucene/docs/index.html

[4] 王能斌.數據庫系統原理[M].北京:電子工業出版社,2000:226-228.

注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”

主站蜘蛛池模板: 欧美日韩国产精品va| 视频二区亚洲精品| av天堂最新版在线| 欧美成人手机在线观看网址| 一级香蕉人体视频| 久久久久久久蜜桃| 国产农村1级毛片| 亚洲区第一页| 国产精品漂亮美女在线观看| 亚洲综合色婷婷中文字幕| 日韩高清中文字幕| 一区二区午夜| 四虎永久在线| 国产精品浪潮Av| 久久人人97超碰人人澡爱香蕉| 无码aaa视频| 国产中文在线亚洲精品官网| 国产成人亚洲毛片| 国产成人精品免费av| 国产乱人伦AV在线A| 综合五月天网| 免费看一级毛片波多结衣| 亚洲国产av无码综合原创国产| 欧美国产日韩一区二区三区精品影视| 国产精品国产三级国产专业不| 蜜芽一区二区国产精品| 日本欧美在线观看| 婷婷色中文| 国产精品亚洲精品爽爽| 久久香蕉欧美精品| 国产在线观看一区精品| 强奷白丝美女在线观看| 国产99免费视频| 国产微拍精品| 四虎影视无码永久免费观看| 国产成人免费手机在线观看视频| 亚洲不卡无码av中文字幕| 性网站在线观看| 国产精品免费露脸视频| 蝴蝶伊人久久中文娱乐网| lhav亚洲精品| 91免费在线看| 久久精品这里只有精99品| 国产综合色在线视频播放线视 | 黄网站欧美内射| 欧美日韩资源| 综合色亚洲| 草草线在成年免费视频2| 亚洲无线一二三四区男男| 久久久久久久久久国产精品| 大学生久久香蕉国产线观看| 在线精品自拍| 久久精品丝袜高跟鞋| 91小视频版在线观看www| 特级aaaaaaaaa毛片免费视频| 亚洲欧美人成电影在线观看 | 最新午夜男女福利片视频| 全部免费毛片免费播放| 在线中文字幕网| 综合亚洲网| 日韩免费无码人妻系列| 中文一级毛片| 亚洲天堂777| 色综合狠狠操| 亚洲国产看片基地久久1024| 永久免费av网站可以直接看的 | 内射人妻无码色AV天堂| 91人人妻人人做人人爽男同| 国产精品欧美亚洲韩国日本不卡| 久久人与动人物A级毛片| 人人91人人澡人人妻人人爽| 亚洲天堂自拍| 91成人免费观看在线观看| 日日摸夜夜爽无码| 四虎AV麻豆| 58av国产精品| 久久久久国产精品嫩草影院| 97国产一区二区精品久久呦| 片在线无码观看| 爆乳熟妇一区二区三区| 色婷婷丁香| 爆乳熟妇一区二区三区|