lucene 从2.4.0—3.6.0—4.3.1版本升级—4.6.0版本升级
来源:互联网 发布:古典音乐软件安卓 编辑:程序博客网 时间:2024/05/20 18:20
一、从2.4升级到3.6
替换原因:由于使用IBM的jdk导致了查询出现不稳定现象,原因无法找到,只好升级版本,毕竟版本很低
1)替换中文分词器,由原来的MMAnaylze替换为IKAnaylze
2)将indexWriter中的相关配置封装到了IndexConfig对象中,在构造IndexWriter的对象时将配置对象传入即可,这样所有配置信息都封装到了配置对象,管理和维护都比较方便
3)optimize方法已经被废弃,3.6自身做了更好的优化
4)查询结果中对doc的对象中的索引项的值进行修改的方法进行了弃用,如doc.getField("content").setValue("testContent");
5)提供了批量索引操作和更新索引方法
6)主要类的构造中添加了版本号参数,如Version.Lucene_36
二、从3.6升级到4.3
1)optimize方法已经被删除
2)查询结果中对doc的对象中的索引项的值进行修改的方法进行了删除,使用迭代器进行修改其值
3)提供了批量索引操作和更新索引方法
4)主要类的构造中添加了版本号参数,如Version.Lucene_43
5)创建索引时,以前采用参数配置是否分词,现在采用StringField和TextField区分,前者不分词,后者分词,内部进行了优化
6)查询器对象IndexSearch不需要手动写代码close,组件自动处理
7)Directory类对象采用FSDirectory.open(new FIle("filePath"))来创建
8)不能使用如下api
doc.getField("content").setValue("test");
使用如下替代:
Iterator it = doc.iterator();
while(it.hasNext()) {
field = (Field) it.next();
if(field != null && key.equals(field.name) {
field.setStringValue(value);
break;
}
}
9)可以针对某个字段进行排序或过滤
三、从4.3.0到4.6.0升级
1、基本上api变化不大,对于IndexReader和IndexWriter只能new一次,重复new的话会报不能set两次的错误
2、Reader用完要关闭,不然再次创建索引时会多出一份索引文件,导致索引文件个数很多
3、创建索引不支持多线程,需要将synchronized进行控制
4、动态添加自定义字典,代码如下:
Dictionary dic = Dictionary.initial(DefaultConfig.getInstance());dic.disableWords(oldWordList);dic.addWords(newWordList);
5、循环创建索引时不能在中间将reader或writer关闭,否则报writer已关闭的异常
- lucene 从2.4.0—3.6.0—4.3.1版本升级—4.6.0版本升级
- Docker版本升级(从1.2.0升级到1.3.0)
- IMFHIVE 升级版本详细步骤 从hive-1.2.1升级到 hive-2.1.0
- lucene版本升级到4.6.0以上之后使用mmseg4j分词器遇到的问题
- 从各低版本升级到Discuz! X3.0 正式版
- Ubuntu 12.04内核版本从3.2升级到3.8.0
- 如何从现有版本升级到element UI2.0
- VMware Ubuntu虚拟机linux内核版本从2.6.22升级到3.6.0-rc7
- linux内核从2.4.20-8升级到2.6.0版本步骤
- 简装版IE7.0升级版本
- 升级SqlCe2.0数据库文件到3.0版本
- ADT升级到22.6.0版本之后
- 升级Ember到2.2.0版本
- hadoop2.0集群版本在线升级方法
- Ubuntu升级gcc版本到5.2.0
- Tensorflow 升级到1.2.0版本
- Android —— Android版本升级
- Docker——版本升级(三)
- (日期校验)判断某年某月某日是不是星期六及当天具体日期时间
- 文档编辑特殊符号
- Topcoder SRM 583 DIV2 解题报告
- tif转成jpg文件
- 开发J2EE应用应遵循的几点原则
- lucene 从2.4.0—3.6.0—4.3.1版本升级—4.6.0版本升级
- 构建高性能J2EE应用的五种核心策略
- HDU 1301 Jungle Roads
- Java-加密可以这样简单(位运算)
- uva 11021 Tribles
- chap02 递归 1
- 6.4.2:HQL查询的from子句
- 什么是数据库的约束?
- Ubuntu root 默认密码