0

我得到如下异常 -

错误 [http-bio-8085-exec-28] org.apache.solr.core.SolrCore - org.apache.lucene.search.BooleanQuery$TooManyClauses: maxClauseCount 在 org.apache.lucene.search.BooleanQuery 设置为 1024。 add(BooleanQuery.java:136) at org.apache.lucene.search.BooleanQuery.add(BooleanQuery.java:127) at org.apache.lucene.search.ScoringRewrite$1.addClause(ScoringRewrite.java:51) at org. apache.lucene.search.ScoringRewrite$1.addClause(ScoringRewrite.java:55)

根据我的理解,此异常出现在 QueryTime (当查询子句在本例中为 1024 时越过它的限制),但这可以在索引时间出现吗?

我在日志中有这个,但不确定这是在哪个进程(索引/查询)中发生的?

谢谢。开发

4

2 回答 2

0

通常,索引新数据不涉及查询,因此在添加文档时不应该看到这一点。

但是,在更新或删除文档时,可以使用查询(deleteDocuments(Query query)例如,使用 )来检索它们。删除或更新查询复杂到足以生成 1024 个子句是不寻常的,但它可能会发生。

不过,它更有可能是搜索查询的结果。

于 2013-10-30T16:26:28.950 回答
0

我在使用时也遇到了这个错误Lucene BooleanQuery。我得到以下异常:

org.apache.lucene.search.BooleanQuery$TooManyClauses: maxClauseCount is set to 1024.

原因是查询词超出了BooleanQuery限制。您可以使用BooleanQuery.setMaxClauseCount(10000);. 但是,您应该小心,因为这可能会导致OutOfMemory错误。

于 2016-08-07T11:10:41.107 回答