完全覆盖\u source elasticsearchpy

2024-04-24 17:27:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图接受一个JSON块,以便它完全覆盖Elasticsearch记录。在我看来,更新将添加新的密钥(如果不存在),或者覆盖它们(如果存在),但它不会删除更新中未包含的密钥。在

我的用户将发送经过编辑的JSON,它是旧的_source字段,因此最简单的更新方法是删除旧的_source,并使用新的JSON作为全新的_source。到目前为止:

from elasticsearch import Elasticsearch

ES = Elasticsearch()

ES.update(index=ELASTIC_INDEX_NAME, doc_type=ELASTIC_EVENT_DOC_TYPE_NAME, id="44", body={"script": {"source": "ctx.op = 'delete'", "lang": "painless"}})
TransportError: TransportError(500, u'script_parse_exception', u'unexpected field [source]')

也未能仅删除一个密钥以查看是否可以在以下位置执行此操作:

^{pr2}$

有没有办法用新的JSON文档完全覆盖Elasticsearch文档?在


Tags: 方法用户namefrom文档json编辑source