#elasticsearch #groovy #logstash #upsert #elasticsearch-painless
#elasticsearch #groovy #logstash #upsert #elasticsearch -безболезненный
Вопрос:
Я использую приведенный ниже блок вывода для обновления документа и увеличения счетчика (частичные обновления) для существующего документа с соответствующим идентификатором.
В настоящее время после первой записи документа в elasticsearch «скрипт» не влияет на последующие вызовы обновления. Это не увеличивает значение счетчика
Ниже приведен блок вывода logstash с использованием upsert и script:
`output {
stdout { }
elasticsearch {
hosts => "localhost"
index => "test_dest"
script => "ctx._source.views =1"
script_lang => "painless"
script_type => "inline"
# scripted_upsert => true
doc_as_upsert => true
document_id => "%{[userId]}"
}
stdout {
codec => "json"
}
}`
Ответ №1:
Попробуйте установить action
значение «обновить» и scripted_upsert
значение «true», как показано ниже:
output {
elasticsearch {
action => "update"
hosts => "localhost"
index => "test_dest"
script => "ctx._source.views =1"
script_lang => "painless"
script_type => "inline"
scripted_upsert => true
document_id => "%{[userId]}"
}
}