gpt4 book ai didi

c# - Nest 5.6 - 如何插入已存在 id 的文档?

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

我有以下代码:

IIndexResponse response = elclient.Index(appointmentHistoryRecord, i => i.Index(OperaIndexName)
.Type(appointmentHistoryRecord.GetType())
.Id(appointmentHistoryRecord.AppointmentId.ToString())
.Refresh(Refresh.False));

上面的代码工作得很好,但它的行为不像我想要的那样。我想要完成的是插入一个具有索引中已经存在的 id 的文档。新文档将具有相同的 ID,但正文不同。

我编写的代码将采用现有文档并使用新正文对其进行更新,这是我试图避免的事情。尽管文档在索引中具有匹配的 id,但我希望在索引中有一条新记录。

任何有关我如何实现这一目标的帮助将不胜感激。

最佳答案

为了明显的理由,您不能有 2 个具有相同 ID 的文档。
id 是一个键。

您可以更新插入:如果不存在则创建文档,如果存在则更新。
更新:更新现有文档
部分更新:更新现有文档的一部分。

您当然可以使用 my_field_id 字段(不是文档的 id)创建文档并插入具有相同 my_field_id 值的 0-X 文档。

我真的不明白您为什么要尝试复制文档,也许可以解释您的上下文,我们将尝试找到一个好的建模或解决方案。

从第二个答案编辑

好的,所以不要使用 elasticsearch id(=key 字段)在您的文档中添加一个字段(=您的 entityid 我认为),然后插入文档而不设置 id 字段(让 es 为您生成一个 id)。然后使用 entityid 字段检索与您的实体相关的所有文档(希望我很清楚:)),如果您需要帮助,请分享您的映射,我会更新它。

很高兴它对你有帮助;)

关于c# - Nest 5.6 - 如何插入已存在 id 的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55361443/

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