【问题标题】:Write consistency in body of ElasticSearch bulk request with NEST使用 NEST 在 ElasticSearch 批量请求正文中写入一致性
【发布时间】:2016-08-24 13:15:04
【问题描述】:

我想知道是否可以在批量请求的正文中(使用 NEST 或 ES JSON)设置所有文档的写入一致性,或者在每个文档的基础上设置?我的代码目前正在使用:

bulkDescriptor.Consistency(Consistency.All);

这会生成一个 JSON 请求,该请求使用 URI 中的参数设置写入一致性。问题是我的主机正在剥离 URI 末尾的查询字符串,因此删除了写一致性设置。我需要一种通过 JSON 请求正文设置写入一致性的方法。

【问题讨论】:

  • 问题是为什么“我的主机正在剥离 URI 末尾的查询字符串”以及如何规避这个问题。
  • 我正在使用 Amazon 的 ElasticSearch 实现。来自亚马逊的 ES SME 告诉我们情况就是这样。来自 SME:...请注意,我们忽略了 POST 请求的所有 URL 参数(它们被剥离以进行请求签名)。如果您确实想设置 write_consistency.all,则需要在 POST 正文中进行。
  • 谢谢亚马逊!您最好建立自己的 EC2 主机并拥有一个真正的 ES 实例。精简后的 AWS ES 服务只会让您做更多的事情。
  • 哎呀!只是为了澄清,是否不可能在批量请求的正文中设置写入一致性?
  • @Ben 您使用的是哪个版本的 NEST,您的目标是哪个版本的 Elasticsearch?

标签: elasticsearch nest


【解决方案1】:

consistency只能设置在查询字符串上;为了在 Elasticsearch 中保持一致性,没有正文表示。 Here's the source for Elasticsearch 2.3:

String consistencyLevel = request.param("consistency");
if (consistencyLevel != null) {
    bulkRequest.consistencyLevel(WriteConsistencyLevel.fromString(consistencyLevel));
}

【讨论】:

    猜你喜欢
    • 2015-08-18
    • 1970-01-01
    • 2022-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 2013-11-09
    • 2023-04-03
    相关资源
    最近更新 更多