我正在使用elasticsearch并通过NEST驱动程序从C#访问它。我需要对我添加的文档进行一些并发控制,并通过NEST驱动程序进行更新。 Here是指向相应弹性搜索功能的链接,但我无法找到有关如何使用NEST驱动程序进行文档版本控制的任何信息。
我尝试设置mapping,希望“_version”属性从索引文档中反序列化(不进行序列化),但没有运气。
有没有人能够做我想做的事情?这甚至可能吗?
答案 0 :(得分:2)
_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.html上提及的op_type
创建,也会在下一个版本中提供该内容。