0

function を呼び出すたびに、特定の URL へのアクセス数を保持する(url,visits)インデックスを作成したいと考えています。どうやってやるの?これまでのところ、挿入を作成することはできましたが、カウンターを増やすことはできません。elasticsearchmyfunction

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)
4

1 に答える 1

0

upsert パラメータを使用する必要があります。ドキュメントがまだ存在しない場合はid:url、デフォルトで作成する必要があります。visits:1

POST /test_index_1/test_doc_type/{id}/_update
{
   "script" : "ctx._source.visits+=1",
   "upsert": {
       "visits": 1
   }
}
于 2016-03-13T03:17:04.477 に答える