我几乎想在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视图。