“curl:(52)来自服务器的空回复”/超时查询ElastiscSearch时

时间:2016-03-10 15:50:42

标签: elasticsearch

我的ElasticSearch(版本1.5.2)遇到了一个恼人的问题:查询立即返回超时(当我使用python的请求时)或

  

curl:(52)来自服务器的空回复

当我使用curl时。

这仅在预期输出很大时才会发生。当我发送一个类似(但更小)的查询时,它回来了。

这里发生了什么?我怎么能克服这个?

3 个答案:

答案 0 :(得分:2)

此问题是由弹性内存耗尽引起的:它根本无法将所有文档保存在内存中。不幸的是,这种情况没有明确的错误代码。

有很多选项可以解决这个问题(除了添加更多内存):

  1. 您可以通过指定" _source:false"告诉Elastic不附加源。结果只会列出相关文档(您需要检索它们)。
  2. 您可以使用" source filtering"只返回部分文件,如果你不需要整件事 - 这对我有用。
  3. 您也可以将查询拆分为一堆子查询。不漂亮,但它会做到这一点。

答案 1 :(得分:1)

在集群上激活ssl / security时,另一个解释可能是发出http请求。

在这种情况下,请使用

curl -X GET "https://localhost:9200/_cluster/health?wait_for_status=yellow&timeout=50s&pretty" --key certificates/elasticsearch-ca.pem  -k -u elasticuser

答案 2 :(得分:0)

在6.2版中,有更严格的检查。

例如:

curl -XPUT -H'Content-Type:application / json''http://localhost:9200/us/user/2?pretty=1'-d'{“email”:“mary@jones.com”,“name”:“Mary Jones”,“用户名“:”@mary“}' curl:(52)来自服务器的空回复

如果删除= 1 curl -XPUT -H'Content-Type:application / json''http://localhost:9200/us/user/2?pretty'-d'{“email”:“mary@jones.com”,“name”:“Mary Jones”,“username”: “@玛丽”}' {   “_index”:“我们”,   “_type”:“用户”,   “_id”:“2”,   “_version”:1,   “结果”:“创造”,   “_shards”:{     “总数”:2,     “成功”:1,     “失败”:0   },   “_seq_no”:0,   “_primary_term”:1 }

它有效!