如何使用elasticsearch-py更新文档?

Dan*_*ook 38 python elasticsearch elasticsearch-py

有没有人有如何使用更新的例子?它的记录在这里,但文档是不清楚,不包括工作的例子.我尝试过以下方法:

coll = Elasticsearch()
coll.update(index='stories-test',doc_type='news',id=hit.meta.id,
                body={"stanford": 1, "parsed_sents": parsed })
Run Code Online (Sandbox Code Playgroud)

我明白了

elasticsearch.exceptions.RequestError: 
TransportError(400, u'ActionRequestValidationException[Validation Failed: 1: script or doc is missing;]')
Run Code Online (Sandbox Code Playgroud)

我想使用部分文档进行更新,但更新方法不会使用任何名为"doc"或"document"的参数.

Val*_*Val 69

你几乎就在那里,你只需要将你的身体包含在"doc"字段中.使用elasticsearch-py进行部分更新的正确方法如下:

coll = Elasticsearch()
coll.update(index='stories-test',doc_type='news',id=hit.meta.id,
                body={"doc": {"stanford": 1, "parsed_sents": parsed }})
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用的是elasticsearch 7x - 请记住删除doc_type (6认同)
  • 没有那个不同.update-by-query是一个外部插件,而不是elasticsearch-py库支持的东西. (2认同)