【问题标题】:elasticsearch using NEST: How to use document versioning?elasticsearch 使用 NEST:如何使用文档版本控制?
【发布时间】:2012-12-17 08:13:54
【问题描述】:

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

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

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

【问题讨论】:

  • 对于后面的人,我写了一篇关于使用 Elasticsearch 和 NEST 的乐观并发的文章 - forloop.co.uk/blog/…
  • 优秀的文章。大约 3 年前,当我遇到这个问题时,这正是我最终所做的。我什至编写了 NEST 的 OpType 支持以使其工作。很高兴有人发现它有用。

标签: c# elasticsearch nest


【解决方案1】:

_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 创建不受支持,下一个版本也会支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多