Java 替换lucene中修改的IndexReader.last

Java 替换lucene中修改的IndexReader.last,java,lucene,Java,Lucene,在Lucene 4.7.1中,方法IndexReader.lastModified()已被删除(不久前刚刚被弃用)。 上次修改的的当前等效值是多少 首先,如果您试图确定读卡器是否为当前读卡器,或者是否需要重新打开读卡器,请不要对commitData映射执行以下操作。相反,只需使用: 3.6文档中的弃用通知提供了一个在很大程度上仍然相关的注释(尽管不完全是最新的): 如果需要跟踪索引的提交时间,可以将其存储在提交数据中(请参阅IndexWriter.commit(Map)) 如果需要知道上次提交

在Lucene 4.7.1中,方法
IndexReader.lastModified()
已被删除(不久前刚刚被弃用)。
上次修改的
的当前等效值是多少

首先,如果您试图确定读卡器是否为当前读卡器,或者是否需要重新打开读卡器,请不要对commitData映射执行以下操作。相反,只需使用:


3.6文档中的弃用通知提供了一个在很大程度上仍然相关的注释(尽管不完全是最新的):

如果需要跟踪索引的提交时间,可以将其存储在提交数据中(请参阅IndexWriter.commit(Map))

如果需要知道上次提交时间,可以在提交时使用以下命令将其存储在UserData中:


注意:这将获取该读卡器当前打开的
IndexCommit
的数据。因此,它在确定是否需要重新打开索引时没有用处。同样,要做到这一点,请使用DirectoryReader.isCurrent()

检查给定方法的javadoc:非常感谢!这就是我需要的。
Map<String, String> commitData = new HashMap();
commitData.put("lastModified", String.valueOf(new Date().getTime()));
indexWriter.setCommitData(commitData);
//Now commit...
string modMillis = dirReader.getIndexCommit().getUserData().get("lastModified");
Date modDate = new Date(Long.valueOf(modifiedMillis));