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

Lucene 通过IndexWriter提交用户数据至少需要一次文档更新?,lucene,lucene.net,Lucene,Lucene.net,看起来有一种非常方便的方法可以通过以下方法推送有关索引的元数据(上次索引更新的时间戳): IndexWriter.Commit(commitUserData) 我所观察到的是,只有当提交包含至少一条文档指令(添加/删除或更新)时,这才有效,而在我的情况下,即使没有要更新的文档,我也希望推送用户数据。我总是更新一个“临时文件”来解决这个问题,但我觉得脏兮兮的 还有其他更好的方法吗? 使用Lucene.NET 2.9.4.1 谢谢 commit userdata映射用于持久化有关提交的信息,如果没

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

IndexWriter.Commit(commitUserData)
我所观察到的是,只有当提交包含至少一条文档指令(添加/删除或更新)时,这才有效,而在我的情况下,即使没有要更新的文档,我也希望推送用户数据。我总是更新一个“临时文件”来解决这个问题,但我觉得脏兮兮的

还有其他更好的方法吗? 使用Lucene.NET 2.9.4.1


谢谢

commit userdata映射用于持久化有关提交的信息,如果没有要提交的内容,lucene不存储元数据是有意义的。(没有与信息相关的承诺)

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

您还可以结合使用
FSDirectory.TouchFile
FSDirectory.ListAll
FSDirectory.FileModified
方法,并使用lucene索引文件时间戳


谢谢!将信息存储在别处正是我试图避免的,特别是为了避免对另一个系统的依赖。这就是它现在的实现方式,但运行不太好。FSDirectory.TouchFile在3.6.1中似乎已被弃用。。。当Lucene.net赶上4.0时,您可以很容易地模仿它。它只是设置FileInfo对象的LastWriteTime属性。