Lucene 5.x与3.6.0版本更新对比及核心变动
需积分: 50 80 浏览量
更新于2024-09-09
收藏 21KB DOCX 举报
"lucene5.X与lucene3.6.0的版本差异"
在Lucene的版本升级过程中,从3.6.0到5.x带来了许多显著的变化和改进,主要集中在API、性能优化以及功能增强等方面。以下是这些关键变化的详细说明:
1. **API变动**:
- lucene-5900:`*InfixSuggester`和`ICUCollationKeyAnalyzer`的构造函数进行了调整,同时`test_version_current`从测试框架中移除。这表示API的使用方式发生了变化,开发者需要根据新的构造函数来创建对象。
- lucene-4535:`oal.util.FilterIterator`现在被标记为内部API,意味着它不再推荐用于公共代码,可能在后续版本中被移除。
- lucene-4924:`DocIdSetIterator.docID()`现在必须在未定位时返回1。这对所有继承自`DocIdSetIterator`的类(如`DocsEnum`和`DocsAndPositionsEnum`)产生了影响,开发者需要更新相关实现。
2. **性能优化**:
- lucene-5127:`FixedGapTermsIndex`的内存使用量降低,同时移除了`IndexWriterConfig.setTermIndexInterval`和`IndexWriterConfig.setReaderTermsIndexDivisor`,因为这些选项在Lucene 4的默认解码器中无效。要配置术语索引间隔,应在创建编码器时直接设置。
- lucene-5388:对`Collector` API进行了重构,以便每个叶子节点使用专用的收集器,这可能会提高搜索性能。
3. **字段比较器和收集器的重构**:
- lucene-5702:`FieldComparator` API进行了重写,采用了类似收集器的每叶API,增强了字段比较的效率。
- lucene-5608, lucene-5565:空间前缀树(SpatialPrefixTree)和单元格API进行了重构,不再使用字符串标记,而是动态地重新声明细胞,增加了灵活性。
4. **索引和关闭行为的改变**:
- lucene-4246:`IndexWriter.close()`现在总是在发生异常时执行关闭操作。新的`IndexWriterConfig.setCommitOnClose(true)`(默认为true)决定了是否在关闭前进行提交。
5. **其他变化**:
- lucene-5666:取消倒排访问(如排序、分类、分组等)现在使用`DocValuesFieldCache` API代替,这对于处理`FieldCache`提供了更高效的解决方案。
这些变化表明,从Lucene 3.6.0升级到5.x版本需要开发者对代码进行相应的调整,以适应新的API和功能。这些改动旨在提高Lucene的性能、可维护性和功能性,但同时也可能需要用户进行一些适配工作,以确保代码兼容新版本。
157 浏览量
288 浏览量
510 浏览量
2021-06-05 上传
2021-05-10 上传
126 浏览量
2021-05-08 上传
121 浏览量
baidu_28496715
- 粉丝: 0
- 资源: 1
最新资源
- elasticsearch-analysis-ik-6.4.3.rar
- 4_dtsled_设备树驱动例程_
- SteamVR插件.rar
- HelloJava:一些java例子,希望对以后有帮助
- 网件A6100-V1.0.0.36驱动
- 【ssm项目源码】文档管理系统.zip
- clase_1_2021
- 使应用程序源不可知
- coffesploit:coffesploit是一个自动渗透测试框架
- driwwwle:Dribbble,但适用于Web开发人员。 与世界共享您的Web项目的门户
- WebSite2_数据稽核统计_
- DOTween Pro 1.0.zip
- MyTitlePageIndicatorDemo
- tc3kb_v500_upgrade TC3000B仪器固件
- 构建环境传播者插件
- sultan-spring