【发布时间】:2017-07-29 02:41:23
【问题描述】:
在这里寻找一个类似的例子:
https://stackoverflow.com/a/33247409/1575066
from elasticsearch import Elasticsearch
es = Elasticsearch("localhost:9200")
es.update(index='test',doc_type='test1',id='1',body={'doc' {'username':'Tom'},'doc_as_upsert':True})
但现在设想目标是追加到数组或增加先前的值(无需先获取文档)。
如果您有官方要求,请在documentation:
POST /website/pageviews/1/_update
{
"script" : "ctx._source.views+=1",
"upsert": {
"views": 1
}
}
我想知道如何完成追加到数组(只是简单地添加到默认列表)。看起来 elasticsearch 自己的示例比我能找到的专门针对 Python 的任何示例都容易。
我之前读过一篇关于人们只是使用 python 请求来做弹性搜索的帖子,我认为这可能是有道理的......
【问题讨论】:
-
附加到数组是什么意思?很确定文档涵盖了
ctx._source.tags+=new_tag -
@cricket_007 elasticsearch 文档涵盖了它;不是 python elasticsearch api 文档,除非我错过了...
-
elasticsearch文档中
POST <url>部分下的整个JSON块可以就是Python API的body -
解决方案有帮助吗?
-
离开了 upserting 解决方案,使用 Python Elasticsearch,here。
标签: python elasticsearch upsert