这是我的文件
{
"name": "andrew",
"b": [{"x":"c1", "y": 0}, {"x":"c2", "y": 0}]
}
我想在数组字段“ b”中找到元素并更新整个对象。我尝试了此脚本,但它没有更新。有任何想法吗?
{
"script": "for (item in ctx._source.b) { if (item['x'] == x_id) { item = newobj; } };",
"params": {
"x_id": "c1",
"newobj" : {"x":"c1", "y": 4222}
},
"lang":"groovy"
}
使用此代替:
{
"script": "for (int i=0;i<ctx._source.b.size();i++) { item=ctx._source.b[i]; if (item['x'] == x_id) { ctx._source.b[i] = newobj} };",
"params": {
"x_id": "c1",
"newobj": {
"x": "c1",
"y": 4222
}
},
"lang": "groovy"
}
问题内容: 我有类似的文件: 我的文档可能很大(但这些字段不是很大),并且从头开始生成它们很昂贵。 有时我需要更新这些批次-因此进行 部分 更新(节省“索引客户端”的处理能力和带宽,从而节省时间)并用新值替换MyProp值将是有益的。 原始文件示例: 更新文档的示例(或更确切地说,外观): 从我所看到的,这包括脚本。 谁能用剩下的难题启发我? 赏金添加: 如果可能的话,我还想在批处理语句中提供一些
问题内容: 我想在每个更新时间将一个对象添加到字段中。 例如,我有一个文档: 下次,我想在测试字段中添加一个对象并保存旧对象。结果是: 如何实现? 编辑 我使用脚本: 但是,我得到了例外: 编辑 现在,我想添加一个字段以确保更新或插入对象。例如: 当我更新字段时,当id存在时,我将更新对象。相反,我将插入对象。 问题答案: 我建议尝试这样的脚本,该脚本在参数中带有两个参数。它将检查任何嵌套对象是否
问题内容: 我是ES中的新手,我想使用脚本过滤器来获得所有匹配,即数组至少具有一个小于max且大于min的元素(max和min是脚本中的param)。 该文件像: 我尝试了脚本,但没有用 没有错误信息,但是搜索结果是错误的,有没有办法迭代数组字段? 谢谢你们。 问题答案: 是的,这是可行的,但是您的脚本没有这样做。尝试改用Groovy的any()方法: 一些东西: 您的脚本只是遍历一个集合并检查条
问题内容: 假设我创建了一个像这样的文档: 我可以使用GET / idx / type / 1检索文档: 现在,我想检查字段“ the_field”是否包含值2。我知道我可以使用term子句,但是我需要使用过滤器脚本检查它,因此我尝试了: 并没有结果: 为了测试我的mevl脚本语法是否正确,我尝试这样做: 并获得正确的结果: 我究竟做错了什么? 我认为doc [‘the_field’]。value
我有一系列推车。我想更新请求对象中的产品数量。即。 我有一个数组的产品和数量,比如: 我想更新它们,如: 这可能的逻辑是什么?
我正在使用liquibase更新数据库。 我有文件changelog-master.xml,其中包含: 在resource/src/main/resources/dbchangelog/ddl/中,我有一个带有脚本的文件MS sql: 错误: 是否可以运行典型的MS SQL脚本或liquibase会有问题?