0

以下のような例外が発生します-

エラー [http-bio-8085-exec-28] org.apache.solr.core.SolrCore - org.apache.lucene.search.BooleanQuery$TooManyClauses: org.apache.lucene.search.BooleanQuery で maxClauseCount が 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

を使用しているときにもこのエラーが発生しましたLucene BooleanQuery。次の例外が発生します。

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

その理由は、クエリ タームがBooleanQuery制限を超えているためです。を使用してこれを解決できますBooleanQuery.setMaxClauseCount(10000);OutOfMemoryただし、これによりエラーが発生する可能性があるため、注意が必要です。

于 2016-08-07T11:10:41.107 に答える
0

通常、新しいデータのインデックス作成に関連するクエリはありません。そのため、ドキュメントを追加するときにこれが表示されることはありません。

ただし、ドキュメントを更新または削除する場合は、クエリを使用して取得できます (deleteDocuments(Query query)たとえば、 を使用)。削除または更新クエリが 1024 句を生成するほど複雑になることはまれですが、発生する可能性があります。

ただし、検索クエリの結果である可能性がはるかに高くなります。

于 2013-10-30T16:26:28.950 に答える