0

我非常想在 lucene4.0 (java) 上执行此操作:如何在 QueryParser 中合并多个字段?

虽然我想搜索所有字段(并非所有文档都存在),但我不知道他们的名字。所以在这里我发现:

QueryParser queryParser = new MultiFieldQueryParser(Version.LUCENE_29, ir.GetFieldNames(IndexReader.FieldOption.ALL).toArray(), analyzer)

虽然getfieldNames()在 4.0 中已被“ LUCENE-3679 Replace IndexReader.getFieldNames with IndexReader.getFieldInfos ”替换。

但是,问题在于getFieldNames或任何 getField* 是在IndexReader中定义的。

我一直在网上寻找解决方案。我错过了什么,我该怎么做?

4

1 回答 1

2

FieldInfos 仅在AtomicReader上可用。您可以通过调用MultiFields.getMergedFieldInfos在复合阅读器上获取 FieldInfos 视图。

于 2013-04-15T12:12:44.470 回答