0

在我的应用程序中,我需要将 lucene 核心 jar 从 2.0 升级到 3.6,问题在于 2.0 RAMDirectory 类也用于读取和写入磁盘位置上的文件。但在 3.6 RAMDirectory 类初始化方法签名更改为不带参数。要从磁盘上的 std 位置读取输入文件,我传递了 FSDirectory.open(File) 参数,但输出索引文件没有写入我提供的位置。

知道将 jar 从 2.0 升级到更高版本时需要考虑什么。

任何参考或经验都会非常有帮助。

谢谢,阿希什

4

1 回答 1

0

这是 的预期行为RAMDirectory。它会在内存中完整复制传入的索引目录。对内存索引所做的更改不会更改存储在磁盘上的索引。除非我缺少某些东西,否则这并没有改变。如果您希望对存储的索引进行更改,RAMDirectory则不是真正的正确类。你可以简单地使用FSDirectory你创建的,而不是。

也许您的应用程序正在加载 RAMDirectory,在内存中使用它,然后稍后将其写回磁盘?

于 2013-09-20T15:54:29.697 回答