我有一个位于UI和Elasticsearch之间的API(通过hug)。
API使用elasticsearch-py来运行搜索,例如:
es = Elasticsearch([URL], http_compress=True)
@hug.post('/search')
def search(body):
return es.search(index='index', body=body)
这很好用;但是,我无法弄清楚如何获得压缩的JSON结果。
Elasticsearch之所以能够做到这一点,是因为curl
测试可以检出-以下内容将一堆字符返回控制台,而不是JSON,这就是我想模拟的:
curl -X GET -H 'Accept-Encoding: gzip' <URL>/<INDEX>/_search
我已经尝试过here来修改HTTP标头的方法,但是有趣的是"Accept-Encoding": "gzip"
标头已经存在:它似乎没有传递给Elastic,因为结果始终是未压缩的
最后,我在创建Elastic实例时传递了http_compress=True
;但是,这只会压缩有效负载,而不会压缩结果。
有人有类似的挣扎并弄清楚吗?