写点什么

Apache Lucene 5.0 发布,不再兼容 3.X 系列版本

  • 2015-02-25
  • 本文字数:1258 字

    阅读完需:约 4 分钟

近日,Apache 软件基金会正式发布了 Apache Lucene 5.0 版本,该版本的重大改进包括实现了更强大且安全的索引和降低了内存堆的使用。同时,该版本还实现了其他方面的一些改进和大量 Bug 的修改。本次更新共包括 32 项新特性、18 项改进、30 个 Bug、40 个 API 的修改以及其它方面的改进。
Lucene 5.0 实现主要更新内容包括:

  1. 所有文件的访问方法都已基于 Java NIO2 的相关 API 进行了改进,这就使得 Lucene 的索引操作能够更加安全地处理异常
  2. Lucene 已实现了为每个 segment 和每次提交都存储了唯一的 id,从而使得 Lucene 能够更加精确地实现索引文件的复制
  3. 在索引合并的过程中,IndexWriter 总会在合并前检测已经损坏的 segment,这就意味着当升级到 5.0 版本时, 对 4.X 系列的索引进行合并时,会有一定的延迟
  4. 新增了 RoaringDocIdSet 和 SparseFixedBitSet 两个类,从而实现了随机写和 advance-able 稀疏 BitSet,索引所需堆大小能够按照比例来设置多少位和共有多少文档不在索引中
  5. 新增 Lucene50Codec 编码 / 解码器,这就使得在索引合并时,减少了内存堆的使用,这是因为索引合并时,不是将所有的 Field 加载到堆中,而是先加载当前要合并 Field,合并成功后再删除,然后再加载其他 Field
  6. 默认的 Norms 格式使用了稀疏编码,这就意味着当进行搜索时,具有大量稀疏 Field 的 Norms 将能够大大减少堆大小的使用
  7. 该版本新增了用来打印一个树形结构以递归展示索引过程中占用堆大小的 API
  8. FieldCache 类已经不鼓励使用,当要在某个 Field 上进行排序时,用户应该使用 Doc 值来索引相应的 Field,相对于使用 FieldCache 更加快且耗费较少的堆大小
  9. 新增一个基于跟踪策略的过滤器缓存,该缓存能够缓存高频率使用的过滤器
  10. 新增 DateRangeField 类型,该类型能够索引和搜索时间范围、关于 DateRangeField 的多值
  11. 默认的编 / 解码器新增了一个选项,以用来控制 Filed 的 BEST_SPEED 或者 BEST_COMPRESSION
  12. 用于基于多值 Field 排序的 SortedSetSortField 已从 Lucene 的沙箱中移到 Luene 的核心库中。

Lucene 5.0 已不再兼容 Lucene 3.X 系列版本,当打开 3.X 系列版本生成的索引将会引起格式异常。如果要升级到 5.0 版本,最好重建索引或者使用最新的 4.10 相关的索引工具更新旧的索引。

Lucene 是一个使用 Java 开发的高性能的全文检索引擎,更多关于 Lucene 5.0 的信息,请读者查看其发布公告和其完整改进列表请看 ChangeLog 。此外,基于 Lucene 的 Solr 也更新到了 5.0 版本, 主要在易用性、维护操作、分布式集群等方面进行了改进,读者可以登录其官网了解相关信息。目前,除了Solr 外,还有有众多著名的开源项目基于Lucene 实现,如 Elasticsearch Hibernate Search 、LinkedIn 的 Zoie 。国内外许多公司都在使用 Lucene 或者基于 Lucene 的开源项目来构建全文检索,如 Apache 软件基金会的网站、Eclipse 的帮助子系统等。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2015-02-25 09:466659
用户头像

发布了 46 篇内容, 共 50.0 次阅读, 收获喜欢 14 次。

关注

评论

发布
暂无评论
发现更多内容

云管理软件哪家好?有哪些功能?咨询电话多少?

行云管家

云计算 云服务 云平台 云资源 云管理

三分钟永久激活WebStorm、PHPStorm、PyCharm、IntelliJ IDEA等JetBrains系列IDE

echeverra

pycharm webstorm IntelliJ IDEA PHPStorm

自定义View:如何实现双击点放大图片控件

Changing Lin

11月日更

Linux应该怎么学?《Linux一学就会》教你如何学习Linux

侠盗安全

Linux linux运维 云计算架构师

识别AI换脸!百度这项技术夺冠了!

百度开发者中心

AI

Flink Sort-Shuffle 实现简介

Apache Flink

大数据 flink 实时计算

一定要过等保吗?过了等保是不是非常安全?

行云管家

网络安全 等保 堡垒机 等级保护

Vue进阶(幺捌贰):父子组件元素获取、方法互相调用

No Silver Bullet

Vue 组件通信 11月日更

手写自定义迭代器,秒懂迭代器底层原理

Tom弹架构

Java 架构 设计模式

数据基础设施支撑电力人工智能:新能源集控智能管理

EMQ映云科技

人工智能 物联网 电力

恒源云(GPUSHARE)_云GPU服务器如何使用 JupyterLab?

恒源云

深度学习

2022第十五届北京国际智慧城市、物联网、大数据博览会

InfoQ_caf7dbb9aa8a

SphereEx 中文开源社区正式开站!精美礼品等你来拿

SphereEx

开源社区 ShardingSphere SphereEx Apache ShardingSphere 中文开源

成为弹唱高手的秘诀!看这一篇就足够!

懒得勤快

模块三作业

Geek_1d37ea

架构训练营

校招 C++ 大概学习到什么程度?

博文视点Broadview

敏捷开发框架

PingCode

Scrum 敏捷开发 PingCode

浅谈网络性能之端到端业务质量分析

鲸品堂

运营商

【云图说】DRS数据对比——带您随时观测数据一致性

华为云数据库小助手

GaussDB 华为云数据库 华为云DRS

编解码再进化:Ali266 与下一代视频技术

阿里云视频云

阿里云 音视频 视频编码 视频编解码 视频云

JDK的第三个LTS版本JDK17来了

程序那些事

程序那些事 11月日更 jdk17 java17

Selenium修改HTTP请求头三种方式

FunTester

测试 HTTP selenium FunTester UI自动化

【重磅官宣】UDC2022:解码Z世代、力造科技潮生活

科技热闻

在线问诊系统功能以及快速发展的意义

风行无疆

全能文件恢复软件推荐

淋雨

数据恢复

墨天轮国产数据库沙龙 | 胡彦军:华为GaussDB迁移工具解密

墨天轮

数据库 华为云 GaussDB 国产数据库

同城本地生活信息服务软件开发你知道多少?

风行无疆

Apache Lucene 5.0发布,不再兼容3.X系列版本_Apache_李小兵_InfoQ精选文章