在我的应用程序中,我要求将lucene core jar从2.0升级到3.6,问题出在2.0 RAMDirectory类用于读取和写入磁盘位置上的文件。但是在3.6 RAMDirectory类中,初始化方法签名被更改为不带参数。 要从磁盘上的std位置读取输入文件,我通过了FSDirectory.open(File)参数,但输出的索引文件没有写入我提供的位置。
任何想法在将jar从2.0升级到高级版本时需要考虑什么。
任何参考或经验都会非常有用。
谢谢, 阿希什
答案 0 :(得分:0)
这是RAMDirectory
的预期行为。它在传入的索引目录的内存中生成一个完整的副本。对内存索引所做的更改不会更改存储在磁盘上的索引。除非有我遗漏的东西,否则这没有改变。如果您希望对存储的索引进行更改,RAMDirectory
实际上并不是正确的类。您只需使用您创建的FSDirectory
即可。
也许您的应用程序正在加载RAMDirectory,在内存中使用它,然后将其写回磁盘?