elasticsearch - Elasticsearch 字符串过滤器-是否存在这样的选项?

标签 elasticsearch error-handling query-string

我想知道,是否有像字符串过滤器这样的选项?

我最近遇到以下错误:

RequestError(400, 'search_phase_execution_exception', 'too_many_clauses: maxClauseCount is set to 1024')



根据Lucene的文档,它说:

使用过滤器替换查询中导致异常的部分。

你有什么想法?

最佳答案

Lucene常见问题解答中提到了几种克服TooManyClauses异常的方法,该方法不适用于Elasticsearch,因为以前它们曾经分别拥有terms filter,但是现在它是术语查询的一部分。

因此,下面是示例如何在过滤器上下文中使用术语的示例:

{
  "query": { 
    "bool": { 

      "filter": [ 
        { "term":   { "user" : ["kimchy", "elasticsearch"]}, 

      ]
    }
  }
}

如果您确实需要使用查询而不是过滤器,则可以更新
集群每个节点的elasticsearch.yml文件中的indices.query.bool.max_clause_count: n(将n替换为所需的子句数),然后重新启动集群。

Note that this will increase the memory requirements for searches that expand to many terms.

关于elasticsearch - Elasticsearch 字符串过滤器-是否存在这样的选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53611639/

相关文章:

elasticsearch - Boosting 对 Elasticsearch 中的 bool 过滤查询没有影响

elasticsearch - 在logstash配置中进行kafka并将输出发送到ES

elasticsearch - NEST dotnet core elastic 没有正确索引

javascript - 使用 Fetch API 时捕获 "Failed to load resource"

javascript - 来自 Node.js 中两个 JavaScript 对象的查询字符串中的参数已排序

python - 你如何访问 Flask 路由中的查询字符串?

mysql - 如何使用 logstash 将嵌套的 mysql 对象索引到 elasticsearch 中?

vb.net - VB .NET错误处理,将错误传递给调用方

c# - 应用程序不会在全局捕获的 UnhandledExceptions 上恢复

jsp - 为什么 HttpServletRequest#getParameterValues ("key") 不将分号识别为分隔符?