Elasticsearch-py Index 有 4 个参数,给定 5 个?

Elasticsearch-py Index takes 4 arguments, 5 given?

我对 Elasticsearch-py 客户端进行了以下调用:

esClient.index(index=data['AppName'], id=data['RequestId'], body=data)

当我 运行 我的代码时出现以下错误:

Traceback (most recent call last):
   File "C:\Users\danielschnoll\dashboard\backend.py", line 52, in main
      parseData(sowSet)
   File "C:\Users\danielschnoll\dashboard\backend.py", line 36, in parseData
      sendToElasticSearch(d)
   File "C:\Users\danielschnoll\dashboard\backend.py", line 39, in sendToElasticSearch
      esClient.index(data['AppName'], id=data['RequestId'], body=data)
   File "C:\elasticsearch-6.2.0-py2.7.egg\elasticsearch\client\utils.py", line 76, in _wrapped
      return func(*args, params=params, **kwargs)
TypeError: index() takes at least 4 arguments (5 given)

我不太确定我是怎么收到这个错误的。我的 4 个参数是来自 esClient 的 'self' 调用,然后是索引、id 和主体 JSON 对象。这个假设的第 5 个参数在哪里,我该如何补救?谢谢

错误很尴尬,文档缺乏解释。

提供 5 个或更多参数不会出错 - 它说 至少 - 但你应该提供第一个参数 index 作为第一个位置参数id 作为第二个:

esClient.index(data['AppName'], data['RequestId'], body=data)

那是 link 中的 indirectly explained,就在您上面评论中 linked 目标的下方,因为没有选项可以提供索引作为参数,只能直接致电 PUT indexname/....