C# 如何在Lucene中传递Queryparser中的多个字段?
我可以在Lucene的Querparser中传递多个索引字段吗? 我做过类似的事情C# 如何在Lucene中传递Queryparser中的多个字段?,c#,lucene.net,C#,Lucene.net,我可以在Lucene的Querparser中传递多个索引字段吗? 我做过类似的事情 QueryParser queryParser = MultiFieldQueryParser.Parse(new[] { query }, new[] { "Name", "Description", "ExternalIdentifier", "OriginalFileName", "Text" }, new StandardAnalyzer()); queryParser.setDefaultOp
QueryParser queryParser = MultiFieldQueryParser.Parse(new[] { query }, new[] { "Name", "Description", "ExternalIdentifier", "OriginalFileName", "Text" }, new StandardAnalyzer());
queryParser.setDefaultOperator(QueryParser.Operator.AND);
但它显示出一些错误?我有点困惑,有人能帮我吗?对于multifiedqueryparser.Parse的特定重载,您正在使用的声明如下:
IllegalArgumentException
-
如果查询的长度、字段、,
和标志数组不同
我怀疑您得到了这个异常,因为您有一个查询和5个字段。如果要使用此方法,则必须提供一个长度为5的查询数组
您可能希望使用,它将接受一个查询,但有多个字段和标志。不能像这样传递多个字段吗?那么我们如何传递多个索引字段呢?那么,要签入多个索引字段,我必须使用多个重载吗?或者是否有任何方法可以在一条语句中的多个字段中检查查询?您可以使用单一重载。然而,我不能100%确定这是否是你想要的。下面是一个示例:multifiedQueryParser.Parse(new[]{query},new[]{“Name”,“Description”},new[]{BooleanClause.occure.SHOULD,BooleanClause.occure.SHOULD},new StandardAnalyzer());你试过这个答案吗?看来你的问题可能是个骗局。