【问题标题】:how to have elasticsearch search (API) deal with a time for which it would be consistent with如何让弹性搜索搜索 (API) 处理与其一致的时间
【发布时间】:2017-06-11 07:49:10
【问题描述】:

弹性搜索 API 最终是一致的,有利于查询响应时间。 只要可以确定其一致的日期,最终的一致性就不是问题。

  • 任何 elasticsearch 搜索 (API) 结果都可以返回与它一致的时间吗? 或
  • 是否有任何方法可以让 elasticsearch 搜索 (API) 结果包含与它一致的时间? 或
  • 是否可以在搜索查询时提供一个日期,以防止 API 响应“与提供的日期不一致”或结果与该日期一致?

最终需要的功能是能够为每个批量更新/索引步骤提供一个(可能是功能性的)日期,并让搜索查询处理它。如果不可能,真正的技术更新/索引日期就足够了。

是否有可能知道所有节点之间的给定更新/同步何时结束?

看了thisthis之后,在针对一个工业项目评估elasticsearch的过程中,我提出了这个问题

【问题讨论】:

    标签: elasticsearch eventual-consistency


    【解决方案1】:

    哦,问题太多了)

    首先,如果您面临一致性要求/问题,很有可能需要切换到一致的数据存储。 ES 很棒,但有时一致性是必须的。

    谈论“自上次同步以来的时间”/“时间一致”。到目前为止,据我所知,有 synced flush 机器,它使您能够通过 /_stats?level=shards 检查“非活动”索引的状态。不确定它是否适合您的用例。

    如果您需要一致的状态,您可以做的事情是使用 wait_for_active_shards=all 索引数据,这会将您的索引从 AP 模式转换为 CP 模式,或者 [偶尔] 仅使用 _search?preference=_primary 从主分片读取数据,以制作索引类型的 CA

    【讨论】:

      猜你喜欢
      • 2021-11-23
      • 2020-03-29
      • 2022-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-08
      • 2013-01-26
      • 2018-02-03
      相关资源
      最近更新 更多