更新 elasticache 记录而不完全替换它
update elasticcache record without totally replacing it
我正在使用它向 elasticcache 索引添加一堆记录:
def self.index_trends(trend_hashes)
formatted_trends = trend_hashes.map do |trend_hash|
{
index: {
_index: 'trends',
_type: 'trend',
_id: trend_hash["id"],
data: trend_hash
}
}
end
elasticsearch.bulk({
body: formatted_trends
})
end
现在我需要更新一条记录(给定它的 ID)。我只想向 data
哈希添加一个键值,而不是替换整个状态。我如何使用 elasticsearch-ruby
来做到这一点?
我不知道如何用 ruby 做到这一点,但在 ES 中有 update API。
看起来像这样
POST test/type1/1/_update
{
"script" : "ctx._source.new_field = \"value_of_new_field\""
}
From example 与 ruby 应该是
client.update index: 'myindex', type: 'mytype', id: '1',
body: { script: 'ctx._source.tags += tag', params: { tag: 'x' } }
我正在使用它向 elasticcache 索引添加一堆记录:
def self.index_trends(trend_hashes)
formatted_trends = trend_hashes.map do |trend_hash|
{
index: {
_index: 'trends',
_type: 'trend',
_id: trend_hash["id"],
data: trend_hash
}
}
end
elasticsearch.bulk({
body: formatted_trends
})
end
现在我需要更新一条记录(给定它的 ID)。我只想向 data
哈希添加一个键值,而不是替换整个状态。我如何使用 elasticsearch-ruby
来做到这一点?
我不知道如何用 ruby 做到这一点,但在 ES 中有 update API。
看起来像这样
POST test/type1/1/_update
{
"script" : "ctx._source.new_field = \"value_of_new_field\""
}
From example 与 ruby 应该是
client.update index: 'myindex', type: 'mytype', id: '1',
body: { script: 'ctx._source.tags += tag', params: { tag: 'x' } }