全面提升性能,Apache Lucene 9.0版本发布原创
Apache Lucene团队最近发布了该开源项目的9.0版本,与用户一起分享性能改进和对Java模块系统支持的初步措施。
Lucene 9.0是Elasticsearch和MongoDB Atlas全文搜索等项目的基础,它试图与时俱进,研究如何支持新的使用场景和Java功能。例如,它是第一个提供带有自动生成模块名称的JARs 版本,引擎背后的团队希望这有助于实现与Java模块系统的工作。
Lucene团队也一直集中在探索高维度数字向量的索引,以便在9.0版本中执行最近邻搜索。由此产生的实现使用了分层可导航小世界图算法,并满足了机器学习领域数据科学家对包含向量的文档进行索引的需求。
新版本的重点主要放在性能上,更新的公告强调了在分类法分面、排序和多维点的索引等方面的速度提升。
除此之外,Lucene还配备了重新设计的ConcurrentMergeScheduler设置,它假定现代I/O来提高索引性能,防止系统遇到看似随机的JDK问题。正则查询变得更加严格,遵循了拒绝非法语法的Java Pattern政策,现在知道如何处理 \w、 \W、 \d、 \D、 \s和 \S表达式。
随着新版本的发布,Lucene团队决定更新项目,以使用Snowball 2.0版本,这是一种用于词干提取算法的处理语言。由于这一变化,用户现在可以使用塞尔维亚语、尼泊尔语和泰米尔语的分析器了。
Lucene 9.0也是第一个为瑞典语提供最小的词干分析器的版本(更复杂的版本已经有了),以及用于输入法感知自动补全的日语补全过滤器。
为了使新版本发挥作用,开发人员需要安装JDK 11或更新版本。在组件处理方面发生的变化也意味着自定义分析工厂需要默认的构造函数实现来适应这些工厂的功能。一般来说,我们通常建议检查导入,因为Lucene 9不再使用拆分包,因此重命名了一些非核心JAR。
Lucene 9更新详情:https://devclass.com/2021/12/13/apache-lucene-9-search-engine/
来源:稀土掘金