我正在使用 elasticsearch 并通过 NEST 驱动程序从 C# 访问它。我需要对通过 NEST 驱动程序添加和更新的文档进行一些并发控制。这是相应弹性搜索功能的链接,但我无法找到有关如何将文档版本控制与 NEST 驱动程序一起使用的任何信息。
我试图设置一个映射,希望“_version”属性将从索引文档中反序列化(不序列化),但没有运气。
有没有人能够做我想做的事?这甚至可能吗?
_version
是一个元数据属性,您可以使用它访问它,result.DocumentsWithMetaData
它公开一个IEnumerable<Hit<YourDto>>
并且Hit<YourDto>>
具有一个.Version
属性。
如果没有指定,Elasticsearch 会自动增加版本号。
您可以在索引此处查看测试时指定自己的预期版本: https ://github.com/Mpdreamz/NEST/blob/master/src/Nest.Tests.Unit/Core/Versioning/VersioningTests.cs
从 ES 文档中,我无法找到有关如何在GET
和Script Update
API 上指定预期版本的提及。必须深入研究以绝对确定那里不需要它。
不支持http://www.elasticsearch.org/blog/2011/02/08/versioning.htmlop_type
上提到的创建,也将在下一个版本中使用。