IndexReader.getFieldNames Lucene 4

我们在这里从Lucene 3.3.0升级到Lucene 4.2.1,我似乎无法找到旧的IndexReader.getFieldNames方法的替代品。 谷歌搜索引出了一张新的IndexReader.getFieldInfos方法的票 ,但这是实验性的,似乎不再存在 – 这条路很冷。

如何在Lucene 4中复制IndexReader.getFieldNames的行为?

您可以使用AtomicReader.getFieldInfos()获取FieldInfos 。
有点像:

for (FieldInfo info : atomicReader.getFieldInfos().iterator()) { String name = info.name; //Whatever you need to do with the name. } 

有关更多信息,请查看迁移指南 ,有关于IndexReader – > AtomicReader的部分。 如果您还不了解这一变化,您可能会发现它有用的信息。