阻止字段在Elastic Search中更新

时间:2020-05-26 06:05:32

标签: spring-boot elasticsearch

我有以下要求。在系统中,有一个作业正在运行,每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个文档。

谢谢!

0 个答案:

没有答案
相关问题