我想在(url,visits)
上创建elasticsearch
索引,每次调用函数myfunction
时,该索引将保留特定网址的访问次数。我怎样才能做到这一点?到目前为止,我已设法创建插入,但我无法增加计数器。
def myfunction():
a = elasticsearch.index(index='test_index_1' , doc_type='test_doc_type' , id="url" , body={'data' : {'visits' : 1} , 'doc_as_upsert' : True})
app.logger.info(a)
b = elasticsearch.update(index='test_index_1' , doc_type='test_doc_type' , id="url" , body={
'script' : 'ctx._source.data.visits += visit',
'params' : {
'visit' : 1
}
})
app.logger.info(b)
答案 0 :(得分:0)
您应该使用upsert参数。如果文档不存在,则应使用默认id:url
创建包含visits:1
的文档:
POST /test_index_1/test_doc_type/{id}/_update
{
"script" : "ctx._source.visits+=1",
"upsert": {
"visits": 1
}
}