我想在elasticsearch
上创建一个(url,visits)
索引,每次调用函数myfunction
时,该索引将保存特定URL的访问次数。我该怎么做?到目前为止,我已经设法创建了插入,但我无法增加计数器。
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)
您应该使用 upsert 参数。如果包含 id:url
的文档尚不存在,则应使用默认visits:1
创建:
POST /test_index_1/test_doc_type/{id}/_update
{
"script" : "ctx._source.visits+=1",
"upsert": {
"visits": 1
}
}