我们将在这里从Lucene 3.3.0升级到Lucene 4.2.1,我似乎找不到旧的IndexReader.getFieldNames方法的替代品。 Googling调出this ticket,它表示一个新的IndexReader.getFieldInfos方法,但是那是实验性的,似乎不再存在-线索很冷。

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

最佳答案

您可以通过FieldInfos获得AtomicReader.getFieldInfos()
类似于以下内容:

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


看一下Migration Guide以获得更多信息,这里有一个关于IndexReader-> AtomicReader的部分。如果您还不熟悉该更改,则可能会找到有用的信息。

07-24 09:18