Nest 5.6 - 如何插入具有现有 ID 的文档?
Nest 5.6 - How to insert a document with already existing id?
我有以下代码:
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 字段检索与您的实体相关的所有文档(希望我清楚:)),如果您需要帮助,请分享您的映射,我会更新它。
很高兴能帮到你 ;)
而不是使用 elasticsearch id(=key 字段)在你的文档中添加一个字段(= 你的 entityid 我认为),并且只插入文档而不设置 id 字段(让 ES 为你生成一个 id)。然后使用 entityid 字段检索与您的实体相关的所有文档。
我有以下代码:
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 字段检索与您的实体相关的所有文档(希望我清楚:)),如果您需要帮助,请分享您的映射,我会更新它。
很高兴能帮到你 ;)
而不是使用 elasticsearch id(=key 字段)在你的文档中添加一个字段(= 你的 entityid 我认为),并且只插入文档而不设置 id 字段(让 ES 为你生成一个 id)。然后使用 entityid 字段检索与您的实体相关的所有文档。