弹性查询中update_by_query不匹配时插入数据



我有这个命令在弹性搜索中不匹配任何数据,我想在它之后插入它。

//localhost:9200/my_index/my_topic/_update_by_query
{
"script": {
"source": "ctx._source.NAME = params.NAME",
"lang": "painless",
"params": {
"NAME": "kevin"
}
},
"query": {
"terms": {
"_id": [
999
]
}
}
}

我尝试使用upsert,但它返回错误Unknown key for a START_OBJECT in [upsert].

我不想使用update+doc_as_upsert,因为我有一个情况,我不会在我的update查询中发送id

我如何插入update_by_query。谢谢你。

如果弹性搜索不支持。我想我会检查条件是否有id,并使用indexAPI创建和update更新。

_update_by_query现有文档上运行包含在现有索引中._update_by_query所做的是滚动索引中的所有文档(可选地匹配查询),并通过脚本或摄取管道对每个文档执行一些逻辑。

因此,从逻辑上讲,不能创建/删除索引中不存在的数据。Index API将始终覆盖您的文档。Upsert只能与_update端点结合使用,这可能是您应该做的。

最新更新