使用官方MVI by Hans Dorfmann(ElasticSearch Python library)
我创建一个索引:
doc = {
"something": "123a",
"somethingelse": "456b",
"timestamp": datetime.now(),
"history": []
}
es.index(index="someindex", doc_type="somedoctype", id="someid", body=doc)
我想每次都在历史记录中添加项目,而不是覆盖它们:
es.update(index="someindex", doc_type="somedoctype", id="someid",
body={"doc": {
"history": {
"123abc": "abc", "456def": "def", "timestamp": datetime.now()
}
}
})
我必须在第二个代码段中进行哪些更改,以使其附加到历史记录数组/列表中,而不是每次都覆盖它?
答案 0 :(得分:0)
您可以在Elasticsearch中使用scripted updates。对于追加到数组,请尝试如下操作:
es.update(index="someindex", doc_type="somedoctype", id="someid",
body={
"script" : {
"source": "ctx._source.history.addAll(params.history)",
"lang": "painless",
"params" : {
"history" : ["item1","item2"]
}
}
})