Exception as Org.apache.lucene.search.BooleanQuery$TooManyCl



我得到如下异常 -

错误 [http-bio-8085-exec-28] org.apache.solr.core.SolrCore - org.apache.lucene.search.BooleanQuery$TooManyClauses: maxClauseCount 设置为 1024 at org.apache.lucene.search.BooleanQuery.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),但这可以在索引时出现吗?

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

谢谢。开发

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

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

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

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

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

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

最新更新