Lucene updateDocument比删除然后添加文档更快吗?

时间:2014-01-23 10:45:21

标签: java lucene indexing

我有一个大索引(大约100 GB),我想经常更新索引中的文档。我对两种方法有疑问:

1)更新文件

2)删除文档并添加更新版本

哪一个会更快?还有其他优点和缺点!?

2 个答案:

答案 0 :(得分:2)

关于Lucene API文档,更新文档或删除旧文档和添加新文档之间应该没有区别。内部更新会导致删除和添加操作:

  

在任何一种情况下,都会使用addDocument添加文档,并使用deleteDocuments(Term)或deleteDocuments(Query)删除文档。可以使用updateDocument更新文档(只删除然后添加整个文档)。完成添加,删除和更新文档后,应调用close。 (http://lucene.apache.org/core/4_6_0/core/org/apache/lucene/index/IndexWriter.html

答案 1 :(得分:1)

如果您可以批量删除和添加,最佳做法是首先进行所有删除,然后进行所有添加。我对大型指数的测试证明了这一点。