0

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

IndexWriter.Commit(commitUserData)

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

还有其他方法可以更好地做到这一点吗?使用 Lucene.NET 2.9.4.1。

谢谢!

4

1 回答 1

0

提交用户数据映射用于保存有关提交的信息,如果没有要提交的内容,则 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

于 2012-11-19T14:31:46.727 回答