行动是治愈恐惧的良药,而犹豫、拖延将不断滋养恐惧。

ES 查询的id太多导致es报错

Elasticsearch | 作者 wu十三 | 发布于2018年03月22日 | 阅读数:12234

今天碰到一个问题,查询es的时候有一万多条id,然后就报错了,怀疑是查询语句太长的,但是没有什么解决办法。。。大家有什么办法啊?
已邀请:

sam_d

赞同来自: wu十三

说一句吧,ES5.0 大改版之后
index.query.bool.max_clause_count: 10240 
已经是不可用了,重启后是无法打开ES的,取而代之的是
indices.query.bool.max_clause_count: 10240
顺便说一下,我ES客户端版本是6.2.4的
 
附上5.0文档
https://www.elastic.co/guide/e ... tings

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自: wu十三

有的,es有个限制id大小。 默认1024,你可以通过配置文件配置参数调节。在Google或者stackoverflow搜索下:"too_many_clauses:
maxClauseCount is set to 1024"
},相关问题答案很快拿到。

caiRZ

赞同来自: wu十三

https://blog.csdn.net/gongzi23 ... 84053
里面有解决方案,内容为:
用了es的in查询,in中id大于1024个,导致es报错,es默认支持元素数量为1024个。
错误为: maxClauseCount is set to 1024
 
编辑elasticsearch.yml,添加如下配置:
index.query.bool.max_clause_count: 10240   // 注意:必须在最前面添加一个空格,即和其他配置首字母对齐,不然es启动报错。

要回复问题请先登录注册