gpt4 book ai didi

elasticsearch - 如何在 elasticsearch 上仅添加新文档或更改的文档?

转载 作者:行者123 更新时间:2023-12-03 01:12:59 25 4
gpt4 key购买 nike

场景:脚本从外部 API 提取数据,将结果格式化为字典/json 对象,并将数据推送到 elasticsearch。该脚本计划定期运行。
条件:该脚本应该只推送 Elasticsearch 中不存在的记录的字典。对于 Elasticsearch 中存在的记录,如果任何数据已更改,则更新字段。
我的方法: API 中的记录有一个 ID,我用它来通过搜索查询检查它们是否存在于 elasticsearch 中。我列出了elasticsearch中不存在的ID,并将对应的记录推送到elasticsearch。
问题:例如,如果记录为 {'ID':1, 'Status':'Started'}昨天被推送到elasticsearch。现在数据已更改为 {'ID':1, 'Status':'Completed'}它仍然会被忽略,因为我只检查 ID。
我正在考虑的解决方案:通过比较 json 对象/字典的所有字段插入到 elasticsearch。如果一切都匹配,请跳过插入。如果任何字段具有不同的值,请插入 Elasticsearch [同一记录具有多个文档的冗余不是问题。需要避免为具有所有相同值的同一记录拥有多个文档的冗余。]

最佳答案

您可以将文档 ID 传递给 index method .如果记录不存在,这将插入记录,否则将更新任何不同的字段。这样,您无需添加自定义逻辑来将该 ID 作为常规字段进行管理。

关于elasticsearch - 如何在 elasticsearch 上仅添加新文档或更改的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63588298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com