2013-03-14 38 views
0

我不明白关于Lucene编程器的这个问题。打开编辑器后,添加一些新文档,然后关闭它。使用相同的目录重新打开编录器,添加一些新文档。然后所有以前的文件都没有了。我无法弄清楚为什么它的行为如此。为什么Lucene IndexWriter写过以前的文档?

+0

永远不会发生。在第一次写入操作后,您是否确定该目录包含索引内容?您可以尝试使用Luke来研究相同的内容,或只是检查目录的大小。 – phani 2013-03-14 23:38:35

+0

Phani,谢谢。你非常有帮助。傻我,我没有将deletePolicy设置为false。 – Zincup 2013-03-15 00:18:46

+0

你是否将'create'参数引用到IndexWriter ctor(在更高版本中由'IndexWriterConfig.OpenMode'取代)?或者你是否真的在引用[IndexDeletionPolicy](http://lucene.apache.org/core/4_1_0/core/org/apache/lucene/index/IndexDeletionPolicy.html)? – femtoRgon 2013-03-15 16:18:34

回答

0

正如Zincup所述,在将文档添加到现有索引时,需要将deletePolicy设置为false。 (在这里添加,所以这个问题有一个正式的答案。)