使用NEST的elasticsearch:如何使用文档版本控制?

时间:2012-12-17 08:13:55

标签: c# elasticsearch nest

我正在使用elasticsearch并通过NEST驱动程序从C#访问它。我需要对我添加的文档进行一些并发控制,并通过NEST驱动程序进行更新。 Here是指向相应弹性搜索功能的链接,但我无法找到有关如何使用NEST驱动程序进行文档版本控制的任何信息。

我尝试设置mapping,希望“_version”属性从索引文档中反序列化(不进行序列化),但没有运气。

有没有人能够做我想做的事情?这甚至可能吗?

1 个答案:

答案 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文档中,我无法找到有关如何在GETScript Update API上指定预期版本的提及。将不得不深入潜水,绝对确定那里不需要它。

不支持在http://www.elasticsearch.org/blog/2011/02/08/versioning.html上提及的op_type创建,也会在下一个版本中提供该内容。