ElasticSearch C# NEST - 如何防止覆盖文档
ElasticSearch C# NEST - How to prevent overwriting a document
当我执行 Index 调用时,如果已存在具有相同 ID 的文档,是否有办法使调用失败?
我看到发出警告,但原始文档仍然被覆盖。
您可以通过使用 _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 冲突响应。在这两种情况下,您都需要一个您 indexing/creating.
的文档的 ID
当我执行 Index 调用时,如果已存在具有相同 ID 的文档,是否有办法使调用失败?
我看到发出警告,但原始文档仍然被覆盖。
您可以通过使用 _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 冲突响应。在这两种情况下,您都需要一个您 indexing/creating.
的文档的 ID