我有以下要求。在系统中,有一个作业正在运行,每15分钟从另一个系统中获取一次文档。提取这些文档后,我将执行自己的工作,该工作将运行并更新该文档,并在其中插入一些字段。就像是从另一个系统获取的文档一样。
{
"id": 1,
"firstName": "XYZ",
"lastName": "ABC",
"grade": "",
"isUpdaterequired":"true",
"details":{
"firstName": null,
"lastName": null,
"grade": null,
"otherDetails":null
}
}
现在,一旦提取了此文档,我们就可以运行自己的作业并按如下所示修改文档:
{
"id": 1,
"firstName": "XYZ",
"lastName": "ABC",
"grade": "",
"isUpdaterequired":false,
"details":{
"firstName": "XYZ",
"lastName": "ABC",
"grade": "1.10",
"otherDetails":"Filled from some other source"
}
}
现在,在15分钟的数据获取作业再次运行之后,它将获取文档,并且同一文档再次出现
{
"id": 1,
"firstName": "XYZ",
"lastName": "ABC",
"grade": "",
"isUpdaterequired":"true",
"details":{
"firstName": null,
"lastName": null,
"grade": null,
"otherDetails":null
}
}
因此,我的工作将再次保存该文档,并将替换“详细信息”。我们可以阻止使用"isUpdaterequired"
字段来更新该特定字段吗?还是有其他方法可以在upsert时停止更新该字段?
我在Spring Boot中使用弹性搜索。
每次保存之前查询文档的存在是昂贵的,因为我们每15分钟收到近10,000个文档。
谢谢!