使用 nohup 或 disown 如果你要让某个进程运行在后台。

es-scroll拉取数据出错

Elasticsearch | 作者 elasticStack | 发布于2019年05月15日 | 阅读数:4416

es版本:es6.X
语言:python2.7
场景:使用scroll api拉取es数据, 会报以下错误
{
"status": 400,
"error": {
"root_cause": [{
"reason": "An HTTP line is larger than 8192 bytes.",
"type": "too_long_frame_exception"
}],
"type": "too_long_frame_exception",
"reason": "An HTTP line is larger than 8192 bytes."
}
}
已邀请:

elasticStack - 90后it大数据男

赞同来自:

解决方案.png

网上的解决方案是修改参数, 但是修改为8k还是报错, 默认应该是4k,所以这个问题只有这一种方案吗, 我看返回的scroll_id将近10k左右。

weizijun - elasticsearch fan

赞同来自:

这个是url超长了,scrollId太长,把scrollId设置在body里吧

elasticStack - 90后it大数据男

赞同来自:

body.png

是这个参数吗 @weizijun

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

赞同来自:

"reason": "An HTTP line is larger than 8192 bytes
超长了

God_lockin

赞同来自:

scroll的request和普通的query是不一样的,是不是你query的budy塞的不对?
 
scroll第一次的query是完整的query,从第二次开始就只有scrollid和time gap了,不需要再传一次query条件了
 
https://www.elastic.co/guide/e ... .html

要回复问题请先登录注册