由于 4.X Lucene 不读取 3.0 之前的任何索引,我试图想出将 2.9 索引移至 4.0 的方法。
我将首先尝试解释这个问题。问题是遗留系统在 Lucene 中存储信息可以追溯到 2.4。我知道这可能会导致问题,并且我已采取措施停止对系统的许多部分(但不是全部)执行此操作。这很糟糕的原因之一是因为现在我们使用 4.0 的 lucene,但仍有 2.9 个索引需要能够在 4.0 中读取。耗时的方法是我写一些东西来创建一个新的 4.0 索引并从 2.9 中读取每个文档以从这些字段创建一个新文档。这需要一些时间,但可行。
我想出的第二个解决方案似乎可行的快速解决方案是,我使用 3.4 lucene 创建了一个新索引,然后在 2.9 lucene 索引上创建了一个索引读取器,然后在 3.4 编写器上调用 addIndexs(2_9Reader)。我将这个 3.4 索引移到 4.0 中,它似乎可以很好地读写这个索引。
我的问题是这样做是否安全?它似乎可以按我的需要工作,但我不确定在完成 addIndexs 代码后我是否理解它的工作原理。