Lucene是一个全文搜索的工具包。网站http://lucene.apache.org/
简介
初接触Lucene的人,可能会认为这是一个完整的应用,拿来就可以搜索文件、数据库记录等。其实Lucene只是一个工具包,包含了对数据做索引和查询的API,你可以把它嵌入到你的系统中,按照自己的业务逻辑构建搜索功能。见下图:
[img]http://hiphotos.baidu.com/alexwei/pic/item/80b12a3f5591acce55e72317.jpg[/img]
安装和demo
下载Lucene java http://lucene.apache.org/java/docs/index.html, 当前版本2.4.1
下载回来文件夹中包含了jar包,demo程序,文档,和一个包含各种扩展的contrib目录。
应用系统集成需要做的仅仅是引入一个jar文件,放到应用的lib目录即可。
让我们来看看demo吧:
demo实现的是对指定的一个文件夹下的所有文件做索引。提供了两种执行方式:ant执行做索引和查询,及一个web应用。
demo里的代码对主要的api都使用到了:
· org.apache.lucene.document
· org.apache.lucene.analysis
· org.apache.lucene.index
· org.apache.lucene.search
看看执行索引和查询的关键部分源码:
[img]http://hiphotos.baidu.com/alexwei/pic/item/09cec180b299dbf59023d911.jpg[/img]
查询:
[img]http://hiphotos.baidu.com/alexwei/pic/item/4bafb509dec121066a60fb12.jpg[/img]
这里只是把查询结果的文件名显示出来
其他
中文检索
默认的分析器,以及扩展包里包含的ChineseAnalyzer,都不能对中文很好的分词,只能按单个字生成索引。在网上搜了一下,还没找到公认最好的分析器。不过据chinakite说,可以自己实现一个。
增量索引
在原始数据中每增加一点内容,都需要重新做索引。Lucene的index接口提供了增量的参数,构造函数里
public IndexWriter(File path, Analyzer a, boolean create, MaxFieldLength mfl)
create参数表示是否重新创建索引
工具
找了一个查看索引的工具:luke
[img]http://hiphotos.baidu.com/alexwei/pic/item/0ba1981365dd1da26438db13.jpg[/img]
下面是计划
二、架构和API
三、索引和分析
四、查询
?五、应用和案例分析
简介
初接触Lucene的人,可能会认为这是一个完整的应用,拿来就可以搜索文件、数据库记录等。其实Lucene只是一个工具包,包含了对数据做索引和查询的API,你可以把它嵌入到你的系统中,按照自己的业务逻辑构建搜索功能。见下图:
[img]http://hiphotos.baidu.com/alexwei/pic/item/80b12a3f5591acce55e72317.jpg[/img]
安装和demo
下载Lucene java http://lucene.apache.org/java/docs/index.html, 当前版本2.4.1
下载回来文件夹中包含了jar包,demo程序,文档,和一个包含各种扩展的contrib目录。
应用系统集成需要做的仅仅是引入一个jar文件,放到应用的lib目录即可。
让我们来看看demo吧:
demo实现的是对指定的一个文件夹下的所有文件做索引。提供了两种执行方式:ant执行做索引和查询,及一个web应用。
demo里的代码对主要的api都使用到了:
· org.apache.lucene.document
· org.apache.lucene.analysis
· org.apache.lucene.index
· org.apache.lucene.search
看看执行索引和查询的关键部分源码:
[img]http://hiphotos.baidu.com/alexwei/pic/item/09cec180b299dbf59023d911.jpg[/img]
查询:
[img]http://hiphotos.baidu.com/alexwei/pic/item/4bafb509dec121066a60fb12.jpg[/img]
这里只是把查询结果的文件名显示出来
其他
中文检索
默认的分析器,以及扩展包里包含的ChineseAnalyzer,都不能对中文很好的分词,只能按单个字生成索引。在网上搜了一下,还没找到公认最好的分析器。不过据chinakite说,可以自己实现一个。
增量索引
在原始数据中每增加一点内容,都需要重新做索引。Lucene的index接口提供了增量的参数,构造函数里
public IndexWriter(File path, Analyzer a, boolean create, MaxFieldLength mfl)
create参数表示是否重新创建索引
工具
找了一个查看索引的工具:luke
[img]http://hiphotos.baidu.com/alexwei/pic/item/0ba1981365dd1da26438db13.jpg[/img]
下面是计划
二、架构和API
三、索引和分析
四、查询
?五、应用和案例分析