-1

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

我最近遇到了以下错误:

RequestError(400, 'search_phase_execution_exception', 'too_many_clauses: maxClauseCount 设置为 1024')

根据 Lucene 的文档,它说:

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

你有什么想法?

4

1 回答 1

0

Lucene 常见问题解答提到了一些克服 TooManyClauses 异常的方法,这些方法不适用于 Elasticsearch,因为以前它们使用单​​独的术语过滤 ,但现在它是术语查询本身的一部分。

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

{
  "query": { 
    "bool": { 

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

      ]
    }
  }
}

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

请注意,这将增加扩展至多个术语的搜索的内存需求。

于 2018-12-04T12:28:28.843 回答