1

elasticsearch 过滤器查询中是否有最大数量的术语?

当尝试索引超过 1000 个术语的查询时,我得到一个 StackoverflowError 像这样:

java.lang.StackOverflowError
    at org.apache.lucene.util.automaton.RegExp.next(RegExp.java:839)
    at org.apache.lucene.util.automaton.RegExp.parseCharExp(RegExp.java:985)
    at org.apache.lucene.util.automaton.RegExp.parseSimpleExp(RegExp.java:980)
    at org.apache.lucene.util.automaton.RegExp.parseCharClassExp(RegExp.java:912)
    at org.apache.lucene.util.automaton.RegExp.parseComplExp(RegExp.java:900)
    at org.apache.lucene.util.automaton.RegExp.parseRepeatExp(RegExp.java:870)
    at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:863)
    at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:864)
    at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:864)

最后一行不断重复。

我尝试将具有高值(16384)的 index.query.bool.max_clause_count 添加到 elasticsearch.yml 文件,但这并不能解决问题。

是否有解决方案,或者将查询分解为许多小得多的查询是否更合适?

4

0 回答 0