昨天改了一个晚上代码都无法使搜索引擎创建文件索引到硬盘中,经过调试发觉已经把文档、字段提取到了内存索引器中,然而在把内存索引书写器中的索引传递给硬盘索引书写器时似乎没有传送成功,只出现segments.gen和segments_2。单独使用FSDirectory时,却是在硬盘相应目录中能够看到索引文件啊!

fsWriter.addIndexesNoOptimize(Directory[] {ramdir});

明明已经写上了这句了啊?第二天上午翻翻资料,发觉有一份资料强调:在合并内存索引器的索引到硬盘索引器前,务必先关闭内存索引器。于是我试着在前面加上”ramWriter.close();”,果然终于出现了久违的.cfs文件。

不过觉得纳闷,我模仿的是一个Lucene2.0版本的项目创建索引的,怎么它不关闭内存索引器依然可以成功把内存中的索引存储到硬盘中。我的是2.9.1版本,不会是版本差异导致的吧……?[confused]