【发布时间】:2013-04-30 16:37:55
【问题描述】:
我们在这里从 Lucene 3.3.0 升级到 Lucene 4.2.1,我似乎找不到旧的 IndexReader.getFieldNames 方法的替代品。谷歌搜索出现this ticket,其中提到了一个新的 IndexReader.getFieldInfos 方法,但这是实验性的,似乎不再存在 - 线索很冷。
如何在 Lucene 4 中复制 IndexReader.getFieldNames 的行为?
【问题讨论】:
我们在这里从 Lucene 3.3.0 升级到 Lucene 4.2.1,我似乎找不到旧的 IndexReader.getFieldNames 方法的替代品。谷歌搜索出现this ticket,其中提到了一个新的 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.
}
查看Migration Guide 了解更多信息,有一个关于 IndexReader -> AtomicReader 的部分。如果您还不熟悉该更改,您可能会发现它很有用。
【讨论】: