我几乎想在lucene4.0(java)上执行此操作:How to incorporate multiple fields in 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”替换。

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

我一直在网上寻找解决方案的年龄。我缺少什么,该怎么办?

最佳答案

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

10-08 13:00