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