我得到如下的异常 -
ERROR [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) 在org.apache.lucene.search.BooleanQuery.add(BooleanQuery.java:127) 在org.apache.lucene.search.ScoringRewrite $ 1.addClause(ScoringRewrite.java:51) 在org.apache.lucene.search.ScoringRewrite $ 1.addClause(ScoringRewrite.java:55)
根据我的理解,这个例外来自QueryTime(当查询子句在这种情况下超过它的限制时,在这种情况下为1024)但是这可以在索引时间到来吗?
我在日志中有这个,并且不确定发生了哪个进程(索引/查询)?
感谢。 开发
答案 0 :(得分:0)
通常,索引新数据不涉及查询,因此在添加文档时不应该看到这一点。
但是,在更新或删除文档时,可以使用查询检索它们(例如,使用deleteDocuments(Query query)
)。删除或更新查询足够复杂以生成1024子句是不常见的,但它可能会发生。
更有可能的是,它是搜索查询的结果。
答案 1 :(得分:0)
使用Lucene BooleanQuery
时,我也遇到了此错误。我得到以下异常:
org.apache.lucene.search.BooleanQuery$TooManyClauses: maxClauseCount is set to 1024.
原因是查询字词超出BooleanQuery
限制。您可以使用 BooleanQuery.setMaxClauseCount(10000);
解决此问题。但是,您应该小心,因为这可能会导致OutOfMemory
错误。