Lucene入门和使用
2010-01-26 14:58
281 查看
本文主要面向具体使用,适用于已熟悉java编程的lucene初学者。
1. Lucene的简介
1.1 Lucene 历史
org.apache.lucene包是纯java语言的全文索引检索工具包。
Lucene的作者是资深的全文索引/检索专家,最开始发布在他本人的主页上,2001年10月贡献给APACHE,成为APACHE基金jakarta的一个子项目。
目前,lucene广泛用于全文索引/检索的项目中。
lucene也被翻译成C#版本,目前发展为Lucene.Net(不过最近好象有流产的消息)。
1.2 Lucene 原理
lucene的检索算法属于索引检索,即用空间来换取时间,对需要检索的文件、字符流进行全文索引,在检索的时候对索引进行快速的检索,得到检索位置,这个位置记录检索词出现的文件路径或者某个关键词。
在使用数据库的项目中,不使用数据库进行检索的原因主要是:数据库在非精确查询的时候使用查询语言“like %keyword%”,对数据库进行查询是对所有记录遍历,并对字段进行“%keyword%”匹配,在数据库的数据庞大以及某个字段存储的数据量庞大的时候,这种遍历是致命的,它需要对所有的记录进行匹配查询。因此,lucene主要适用于文档集的全文检索,以及海量数据库的模糊检索,特别是对数据库的xml或者大数据的字符类型。
2.Lucene的下载和配置
2.1 Lucene的下载
lucene在jakarta项目中的发布主页:http://jakarta.apache.org/lucene/docs/index.html。以下主要针对windows用户,其它用户请在上面的地址中查找相关下载。
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
本文使用lucene版本:lucene-1.4-final.jar。
2.2 lucene的配置
首先请确定你的机子已经进行了java使用环境的基本配置,即确保在某个平台下能够运行java源代码,否则请查阅相关文档进行配置。
接下来进入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. Lucene 的范例(Demo )
3.1 Demo说明
可以得到的Demo包括:lucene-demos-1.4-final、XMLIndexingDemo,lucene-demos-1.4-final中包括对普通文件和html文件的两种索引,XMLIndexingDemo针对xml文件的索引。他们的区别主要在于:对普通文件进行索引时只要对文件的全文进行索引,而针对html、xml文件时,对标签类型不能进行索引,在实现上:html、xml的索引需要额外的数据流分析器,以分析哪些内容有用哪些无用。因此,在后两者实现上,索引的时间额外开支,甚至超过索引本身时间,而检索时间没有区别。
以上Demo中,lucene-demos-1.4-final自带于lucene-1.4-final.zip中,XMLIndexingDemo的下载地址:
http://cvs.apache.org/viewcvs.cgi/jakarta-lucene-sandbox/contributions/XML-Indexing-Demo/
3.2 Demo的运行
首先将demo.jar的路径添加如环境变量的CLASSPATH中,例如:“D:/java/lucene-1.4-final/lucene-demos-1.4-final.jar;”,同时确保已经添加lucene-1.4-final.jar。
然后进行文件的全文索引,在dos控制台中,输入命令“java org.apache.lucene.demo.IndexFiles {full-path-to-lucene}/src”,后面的路径为所要进行索引的文件夹,例如:“java org.apache.lucene.demo.IndexFiles c:/test”。
接着对索引进行检索,敲入“java org.apache.lucene.demo.SearchFiles”,在提示“Query:”后输入检索词,程序将进行检索列出检索得到的结果(检索词出现的文件路径)。
其他Demo的运行请参考/docs/demo.html。
在运行Demo后请阅读Demo的源代码以便深入学习。
1. Lucene的简介
1.1 Lucene 历史
org.apache.lucene包是纯java语言的全文索引检索工具包。
Lucene的作者是资深的全文索引/检索专家,最开始发布在他本人的主页上,2001年10月贡献给APACHE,成为APACHE基金jakarta的一个子项目。
目前,lucene广泛用于全文索引/检索的项目中。
lucene也被翻译成C#版本,目前发展为Lucene.Net(不过最近好象有流产的消息)。
1.2 Lucene 原理
lucene的检索算法属于索引检索,即用空间来换取时间,对需要检索的文件、字符流进行全文索引,在检索的时候对索引进行快速的检索,得到检索位置,这个位置记录检索词出现的文件路径或者某个关键词。
在使用数据库的项目中,不使用数据库进行检索的原因主要是:数据库在非精确查询的时候使用查询语言“like %keyword%”,对数据库进行查询是对所有记录遍历,并对字段进行“%keyword%”匹配,在数据库的数据庞大以及某个字段存储的数据量庞大的时候,这种遍历是致命的,它需要对所有的记录进行匹配查询。因此,lucene主要适用于文档集的全文检索,以及海量数据库的模糊检索,特别是对数据库的xml或者大数据的字符类型。
2.Lucene的下载和配置
2.1 Lucene的下载
lucene在jakarta项目中的发布主页:http://jakarta.apache.org/lucene/docs/index.html。以下主要针对windows用户,其它用户请在上面的地址中查找相关下载。
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
本文使用lucene版本:lucene-1.4-final.jar。
2.2 lucene的配置
首先请确定你的机子已经进行了java使用环境的基本配置,即确保在某个平台下能够运行java源代码,否则请查阅相关文档进行配置。
接下来进入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. Lucene 的范例(Demo )
3.1 Demo说明
可以得到的Demo包括:lucene-demos-1.4-final、XMLIndexingDemo,lucene-demos-1.4-final中包括对普通文件和html文件的两种索引,XMLIndexingDemo针对xml文件的索引。他们的区别主要在于:对普通文件进行索引时只要对文件的全文进行索引,而针对html、xml文件时,对标签类型不能进行索引,在实现上:html、xml的索引需要额外的数据流分析器,以分析哪些内容有用哪些无用。因此,在后两者实现上,索引的时间额外开支,甚至超过索引本身时间,而检索时间没有区别。
以上Demo中,lucene-demos-1.4-final自带于lucene-1.4-final.zip中,XMLIndexingDemo的下载地址:
http://cvs.apache.org/viewcvs.cgi/jakarta-lucene-sandbox/contributions/XML-Indexing-Demo/
3.2 Demo的运行
首先将demo.jar的路径添加如环境变量的CLASSPATH中,例如:“D:/java/lucene-1.4-final/lucene-demos-1.4-final.jar;”,同时确保已经添加lucene-1.4-final.jar。
然后进行文件的全文索引,在dos控制台中,输入命令“java org.apache.lucene.demo.IndexFiles {full-path-to-lucene}/src”,后面的路径为所要进行索引的文件夹,例如:“java org.apache.lucene.demo.IndexFiles c:/test”。
接着对索引进行检索,敲入“java org.apache.lucene.demo.SearchFiles”,在提示“Query:”后输入检索词,程序将进行检索列出检索得到的结果(检索词出现的文件路径)。
其他Demo的运行请参考/docs/demo.html。
在运行Demo后请阅读Demo的源代码以便深入学习。
相关文章推荐
- Lucene入门与使用
- Lucene入门与使用
- 李克华 云计算高级群: 292870151 195907286 交流:Hadoop、NoSQL、分布式、lucene、solr、nutch kafka入门:简介、使用场景、设计原理、主要配置及集群搭
- Lucene入门与使用(1)--转
- lucene入门-使用pdfbox解析中文PDF
- Lucene入门与使用(2)转
- lucene入门-解析pdf(使用xpdf解析中文PDF详细过程)
- lucene入门-解析pdf(使用pdfbox解析英文PDF)
- Lucene.NET使用入门(二)【简单的搜索网站示例】
- JAVAWEB开发之Lucene详解——Lucene入门及使用场景、全文检索、索引CRUD、优化索引库、分词器、高亮、相关度排序、各种查询
- Lucene入门使用
- Apache Lucene 5.1.0 入门使用篇
- lucene入门-使用JE中文分词
- :Hadoop、NoSQL、分布式、lucene、solr、nutch kafka入门:简介、使用场景、设计原理、主要配置及集群搭
- Lucene入门与使用
- lucene入门与使用
- 李克华 云计算高级群: 292870151 195907286 交流:Hadoop、NoSQL、分布式、lucene、solr、nutch kafka入门:简介、使用场景、设计原理、主要配置及集群搭
- 开发自己的搜索引擎——Lucene 2.0+Heriterx—— Heritrix的使用入门
- lucene入门-使用JE中文分词
- Lucene入门与使用