如何在 Lucene 的 Queryparser 中传递多个字段

本文关键字:字段 Queryparser Lucene | 更新日期: 2023-09-27 17:57:14

我可以在Lucene的Querparser中传递多个索引字段吗?我做过这样的事情

  QueryParser queryParser =  MultiFieldQueryParser.Parse(new[] { query }, new[] { "Name", "Description", "ExternalIdentifier", "OriginalFileName", "Text" }, new StandardAnalyzer());
  queryParser.setDefaultOperator(QueryParser.Operator.AND);

但它显示了一些错误? 我有点困惑,有人可以帮我吗?

如何在 Lucene 的 Queryparser 中传递多个字段

您正在使用的MultiFieldQueryParser.Parse的特定重载的文档指出如下:

IllegalArgumentException - 如果查询的长度、字段、 和标志数组不同。

我怀疑您收到此异常,因为您有一个查询和 5 个字段。 如果这是要使用的方法,则必须提供长度为 5 的查询数组。

您可能希望使用不同的分析重载,这将接受单个查询,但接受多个字段和标志。