gpt4 book ai didi

java - 在Java中通过多个主要版本以编程方式升级Lucene索引

转载 作者:行者123 更新时间:2023-11-30 02:24:48 24 4
gpt4 key购买 nike

我正在编写一个实用程序,用于用 Java 从 3.6.2 升级 Lucene 索引。 Lucene 的 IndexUpgrader 仅适用于最后一个主要版本。目前6.6.0是最新的。这意味着我必须通过连续的主要版本(3 到 4、4 到 5,最后是 5 到 6)升级索引。

这涉及运行 Lucene 的 IndexUpgrader 的多个版本。不幸的是,IndexUpgrader 在多个版本中都打包在 Lucene jar 中的同一位置:

Lucene v4.9.1 : org.apache.lucene.index.IndexUpgrader
Lucene v5.5.4 : org.apache.lucene.index.IndexUpgrader
Lucene v6.6.0 : org.apache.lucene.index.IndexUpgrader

...等等。 future 的版本可能会遵循这种模式。

我的问题是,我是否可以在应用程序中包含 3 个不同版本的 Lucene,并实例化特定版本的 IndexUpgrader,而不将 Lucene 源代码复制到我的包结构中?如果是这样,怎么办?

最佳答案

据我所知(Lucene 项目上非常聪明的开发人员),升级多个主要版本时无法保证兼容性。也就是说,如果您从版本 5.x.x 开始,将索引升级到 6.x.x 版本,然后尝试在版本 7 中使用该索引,则绝对不能保证该索引能够正常工作。

因此,即使您弄清楚如何欺骗类加载以便可以在应用程序中拥有多个版本的 Lucene 并让整个想法发挥作用,生成的索引也可能无法正常工作。

关于java - 在Java中通过多个主要版本以编程方式升级Lucene索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45926082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com