ElasticSearch C#NEST-如何防止覆盖文档
执行索引调用时,如果已经存在具有相同ID的文档,是否有方法使调用失败ElasticSearch C#NEST-如何防止覆盖文档,c#,
elasticsearch,nest,C#,
elasticsearch,Nest,执行索引调用时,如果已经存在具有相同ID的文档,是否有方法使调用失败 我看到发出了警告,但原始文档仍被覆盖。您可以通过使用\u create端点,或在索引文档时指定OpType.create来实现这一点 var client = new ElasticClient(); // using OpType.Create client.Index(new Test { Id = 1, Message = "message 1" }, i => i .OpType(OpType.Crea
我看到发出了警告,但原始文档仍被覆盖。您可以通过使用
\u create
端点,或在索引文档时指定OpType.create
来实现这一点
var client = new ElasticClient();
// using OpType.Create
client.Index(new Test { Id = 1, Message = "message 1" }, i => i
.OpType(OpType.Create)
);
// using _create endpoint
client.Create(new Test { Id = 1, Message = "message 1" });
如果文档已经存在,将返回HTTP 409冲突响应。在这两种情况下,您都需要索引/创建的文档的ID。在否决票上添加注释会非常有帮助,这样我就知道问题出在哪里了。IndexMany是否有类似的内容,它会跳过已经存在的文档?不是跳过,而是返回409,是的
IndexMany
只是围绕\u bulk
API的一种方便,它公开了批量创建、更新、索引和删除操作。查看不同操作示例的批量API测试: