基于lucene创建实时索引基础jar包
2014-03-06 14:31
267 查看
转载请注明来源:/article/2606855.html
最近的工作需要自己创建各种内部产品的索引,每次都要重复一样的工作,不断的将一个项目下的类文件拷贝到另一个项目中,然后修改一些配置,这种事情真的很浪费时间,因此自己就总结了这个jar包lucene_4.3.1_fat.jar,这个jar包基于lucene4.3.1版本做的。下面就简单介绍下关于jar包的使用:
lucene_fat.jar使用说明
1、依赖jar包:
lucene-analyzers-common-4.3.1.jar
lucene-analyzers-smartcn-4.3.1.jar
lucene-core-4.3.1.jar
lucene-highlighter-4.3.1.jar
lucene-queries-4.3.1.jar
lucene-queryparser-4.3.1.jar
2、提供功能:
1) 提供实时索引的创建、管理
2) Query的创建
3、包介绍
1) cn.lulei.lucene.index 索引管理包
ConfigBean 索引配置基本属性参数类
IndexConfig 创建索引时使用的参数类
IndexManager 索引管理类
NRTIndex 索引修改类
2) cn.lulei.lucene.query Query创建包
EstablishQuery 组装Query类
LuceneKey 字符串中lucene特殊字符处理类
3) cn.lulei.lucene.test 测试包
LuceneInitTest 索引创建测试类
QueryTest EstablishQuery测试类
4、使用方法
1) 索引
配置实时索引的一些参数,调用IndexConfig.setConfigBean(HashSet<ConfigBean> configBean)方法来配置,在执行关于IndexManager类和NRTIndex类中的方法时,请确保方法IndexConfig.setConfigBean(HashSet<ConfigBean> configBean)已执行,否则将使用默认配置。
configBean中的属性说明:analyzer 分词器;indexPath 索引地址;indexReopenMinStaleSec 索引reopen最小时间间隔;indexReopenMaxStaleSec 索引reopen最大时间间隔;indexCommitSeconds 索引commit周期;indexName 索引名字
获取索引管理类IndexManager,调用方法IndexManager.getIndexManager(String indexName)来实现
获取可供使用的IndexSearcher,IndexManager调用getIndexSearcher()方法来实现。IndexSearcher主要用于搜索功能,在使用完毕之后,需调用release(IndexSearcher searcher)来释放
NRTIndex修改索引中的数据,构造方法NRTIndex(String indexName)指定对哪个索引进行修改,在使用类NRTIndex中的修改索引方法,如系统一直处于后台运行状态,可以不调用commit()方法,在indexCommitSeconds内会自动执行commit()操作;如修索引后程序即将结束,请在程序结束前调用commit()方法,避免数据丢失。
2) 组装Query
EstablishQuery的构造方法 EstablishQuery(String indexName)在组装Query时使用indexName索引中的分词器; EstablishQuery(Analyzer analyzer)在组装Query时使用analyzer分词器
EstablishQuery中提供了几种常用的Query组装方法,在调用这些方法时,先调用LuceneKey类中的方法对字符串做预处理。
注:lucene_4.3.1_fat.jar 包已经将依赖的jar包打包进来,不需要再次导入这些jar包。
下面给出两个测试案例
创建实时索引:
Query组装实例:
lucene_4.3.1_fat.jar 的下载地址:http://download.csdn.net/detail/xiaojimanman/7000175
源码下载地址:http://download.csdn.net/detail/xiaojimanman/7000219
最近的工作需要自己创建各种内部产品的索引,每次都要重复一样的工作,不断的将一个项目下的类文件拷贝到另一个项目中,然后修改一些配置,这种事情真的很浪费时间,因此自己就总结了这个jar包lucene_4.3.1_fat.jar,这个jar包基于lucene4.3.1版本做的。下面就简单介绍下关于jar包的使用:
lucene_fat.jar使用说明
1、依赖jar包:
lucene-analyzers-common-4.3.1.jar
lucene-analyzers-smartcn-4.3.1.jar
lucene-core-4.3.1.jar
lucene-highlighter-4.3.1.jar
lucene-queries-4.3.1.jar
lucene-queryparser-4.3.1.jar
2、提供功能:
1) 提供实时索引的创建、管理
2) Query的创建
3、包介绍
1) cn.lulei.lucene.index 索引管理包
ConfigBean 索引配置基本属性参数类
IndexConfig 创建索引时使用的参数类
IndexManager 索引管理类
NRTIndex 索引修改类
2) cn.lulei.lucene.query Query创建包
EstablishQuery 组装Query类
LuceneKey 字符串中lucene特殊字符处理类
3) cn.lulei.lucene.test 测试包
LuceneInitTest 索引创建测试类
QueryTest EstablishQuery测试类
4、使用方法
1) 索引
配置实时索引的一些参数,调用IndexConfig.setConfigBean(HashSet<ConfigBean> configBean)方法来配置,在执行关于IndexManager类和NRTIndex类中的方法时,请确保方法IndexConfig.setConfigBean(HashSet<ConfigBean> configBean)已执行,否则将使用默认配置。
configBean中的属性说明:analyzer 分词器;indexPath 索引地址;indexReopenMinStaleSec 索引reopen最小时间间隔;indexReopenMaxStaleSec 索引reopen最大时间间隔;indexCommitSeconds 索引commit周期;indexName 索引名字
获取索引管理类IndexManager,调用方法IndexManager.getIndexManager(String indexName)来实现
获取可供使用的IndexSearcher,IndexManager调用getIndexSearcher()方法来实现。IndexSearcher主要用于搜索功能,在使用完毕之后,需调用release(IndexSearcher searcher)来释放
NRTIndex修改索引中的数据,构造方法NRTIndex(String indexName)指定对哪个索引进行修改,在使用类NRTIndex中的修改索引方法,如系统一直处于后台运行状态,可以不调用commit()方法,在indexCommitSeconds内会自动执行commit()操作;如修索引后程序即将结束,请在程序结束前调用commit()方法,避免数据丢失。
2) 组装Query
EstablishQuery的构造方法 EstablishQuery(String indexName)在组装Query时使用indexName索引中的分词器; EstablishQuery(Analyzer analyzer)在组装Query时使用analyzer分词器
EstablishQuery中提供了几种常用的Query组装方法,在调用这些方法时,先调用LuceneKey类中的方法对字符串做预处理。
注:lucene_4.3.1_fat.jar 包已经将依赖的jar包打包进来,不需要再次导入这些jar包。
下面给出两个测试案例
创建实时索引:
/** *@Description: 创建索引测试类 */ package cn.lulei.lucene.test; import java.util.HashSet; import cn.lulei.lucene.index.ConfigBean; import cn.lulei.lucene.index.IndexConfig; import cn.lulei.lucene.index.IndexManager; public class LuceneInitTest { public static void main(String[] args) { // TODO Auto-generated method stub HashSet<ConfigBean> configBeanHS = new HashSet<ConfigBean>(); for (int i = 0; i < 4; i++) { ConfigBean configBean = new ConfigBean(); configBean.setIndexPath("d:/index"); configBean.setIndexName("test" + i); configBeanHS.add(configBean); } IndexConfig.setConfigBean(configBeanHS); IndexManager indexManager = IndexManager.getIndexManager("test0"); indexManager.release(indexManager.getIndexSearcher()); IndexManager.getIndexManager("test1"); } }该实例创建了四个索引,执行结束后创建如图所示的文件。
Query组装实例:
/** *@Description: 创建查询Query测试 */ package cn.lulei.lucene.test; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.queryparser.classic.ParseException; import org.apache.lucene.util.Version; import cn.lulei.lucene.query.EstablishQuery; public class QueryTest { public static void main(String[] args) throws ParseException { // TODO Auto-generated method stub EstablishQuery establishQuery = new EstablishQuery(new StandardAnalyzer(Version.LUCENE_43)); System.out.println(establishQuery.getOneFieldQuery("你好呀", "field", false)); } }执行结果: field:"你 好 呀"
lucene_4.3.1_fat.jar 的下载地址:http://download.csdn.net/detail/xiaojimanman/7000175
源码下载地址:http://download.csdn.net/detail/xiaojimanman/7000219
相关文章推荐
- 基于hadoop创建lucene索引(一)编程模型一
- 基于hadoop创建lucene索引(二)编程模型二
- 基于lucene的案例开发:实现实时索引基本原理
- 基于lucene的案例开发:实时索引管理类IndexManager
- 基于lucene的案例开发:创建索引
- 基于lucene的案例开发:实时索引的修改
- lucene全文搜索之四:创建索引搜索器、6种文档搜索器实现以及搜索结果分析(结合IKAnalyzer分词器的搜索器)基于lucene5.5.3
- lucene全文搜索之三:生成索引字段,创建索引文档(给索引字段加权)基于lucene5.5.3
- lucene全文搜索之四:创建索引搜索器、6种文档搜索器实现以及搜索结果分析(结合IKAnalyzer分词器的搜索器)基于lucene5.5.3
- lucene全文搜索之三:生成索引字段,创建索引文档(给索引字段加权)基于lucene5.5.3
- 基于lucene的案例开发:实时索引的检索
- lucene第一步,lucene基础,索引创建
- 有关Lucene的问题(7):用Lucene构建实时的索引
- 在应用中加入全文检索功能——基于Java的全文索引引擎Lucene简介
- Lucene索引创建之域选项介绍,Field.Store和Fiele.Index
- lucene_43版本创建索引demo
- lucene 基于索引的查询
- 全文检索Lucene入门之创建索引及简单搜索
- Lucene基础(二)--索引的操作
- 7.Spark Streaming:输入DStream之基础数据源以及基于HDFS的实时wordcount程序