假设我的索引中包含以下文档:
{
id: 1
cities: [
{id:1,name:"ny"},
{id:2,name:"sf"}
]
}
如何编写更新脚本,以便在再次插入{id:1,name:“ny”}时不会创建重复条目?
目前,我有以下常规脚本,但它总是给我错误:
if (!ctx._source.cities) {
ctx._source.cities = [city]
} else {
ctx._source.cities= (ctx._source.cities+ [city]).unique{ a, b -> a.id == b.id }
}
我认为问题在于我错误地访问了对象属性。请指教。谢谢!
最佳答案
错误groovy code
。
如下所述使用unique
:
ctx._source.cities= (ctx._source.cities+ [city]).unique{it.id}
希望这可以帮助
关于elasticsearch - 插入时防止在Elasticsearch对象数组中重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35469137/