Elasticsearch-python 批量助手 API 上没有 filter_path 选项

No filter_path option on Elasticsearch-python bulk helper API

来自 _index_bulk API 的回复包含相当多的信息。此信息可用于对请求进行故障排除或实现重试逻辑,但会占用相当大的带宽。在此示例中,索引 32 字节的文档会产生 339 字节的响应(包括 headers):

如果我们 update/index 像下面这样的文档,

PUT elasticsearch_domain/more-movies/_doc/1
{"title": "Back to the Future"}

它将 return 如下所示的响应,

{
  "_index": "more-movies",
  "_type": "_doc",
  "_id": "1",
  "_version": 4,
  "result": "updated",
  "_shards": {
    "total": 2,
    "successful": 2,
    "failed": 0
  },
  "_seq_no": 3,
  "_primary_term": 1
}

现在,如果我们将 filter_path 与我们现有的索引过程一起使用 _bulk API

PUT elasticsearch_domain/more-movies/_doc/1?filter_path=result,_shards.total
{"title": "Back to the Future"}

然后响应会像,

{
  "result": "updated",
  "_shards": {
    "total": 2
  }
}

所以我的问题是如何使用 filter_path 过滤掉带有 Elasticsearch-python bulk API 或流式传输的响应 API?

与搜索功能相同。试试这样:

elasticsearch.helpers.bulk(client, actions, stats_only=False, filter_path=["hits.hits.result","hits.hits._shards.total"])