通过IndexWriter提交用户数据至少需要一次文档更新?

时间:2012-11-18 23:05:45

标签: lucene lucene.net

看起来有一种方便的方法可以通过以下方法推送一些关于索引的元数据(最后一个索引更新的时间戳):

IndexWriter.Commit(commitUserData)

我观察到的是,只有在提交包含至少一个文档指令(添加/删除或更新)时才有效,而在我的情况下,如果我想要推送用户数据甚至没有要更新的文件。我总是通过更新“临时文档”来解决这个问题,但我觉得很脏。

还有其他方法可以做得更好吗? 使用Lucene.NET 2.9.4.1。

谢谢!

1 个答案:

答案 0 :(得分:0)

提交userdata映射用于持久保存有关提交的信息,如果没有提交任何内容,则lucene不存储元数据是有意义的。 (没有承诺将信息与之相关联)

如果您要存储的日期表示您最后一次检查索引是否需要更新(即网站的上次抓取),则应将此信息存储在其他位置。 (数据库/配置文件/等)

您还可以使用FSDirectory.TouchFile FSDirectory.ListAllFSDirectory.FileModified方法的组合,并使用lucene索引文件时间戳。

http://lucene.apache.org/core/old_versioned_docs/versions/2_9_4/api/all/org/apache/lucene/store/FSDirectory.html