我想知道,是否有像字符串过滤器这样的选项?
我最近遇到了以下错误:
RequestError(400, 'search_phase_execution_exception', 'too_many_clauses: maxClauseCount 设置为 1024')
根据 Lucene 的文档,它说:
使用过滤器替换导致异常的查询部分。
你有什么想法?
我想知道,是否有像字符串过滤器这样的选项?
我最近遇到了以下错误:
RequestError(400, 'search_phase_execution_exception', 'too_many_clauses: maxClauseCount 设置为 1024')
根据 Lucene 的文档,它说:
使用过滤器替换导致异常的查询部分。
你有什么想法?
Lucene 常见问题解答提到了一些克服 TooManyClauses 异常的方法,这些方法不适用于 Elasticsearch,因为以前它们使用单独的术语过滤 ,但现在它是术语查询本身的一部分。
下面是如何在过滤器上下文中使用术语的示例:
{
"query": {
"bool": {
"filter": [
{ "term": { "user" : ["kimchy", "elasticsearch"]},
]
}
}
}
如果您确实需要使用查询而不是过滤器,则可以
indices.query.bool.max_clause_count: n
在集群的每个节点的 elasticsearch.yml(将 n 替换为您需要的子句计数的数量)文件中进行更新并重新启动集群。
请注意,这将增加扩展至多个术语的搜索的内存需求。