【问题标题】:Elasticsearch high level REST client - Indexing has latencyElasticsearch 高级 REST 客户端 - 索引有延迟
【发布时间】:2021-04-03 14:30:48
【问题描述】:

我们终于开始使用高级别的 REST 客户端,从后端工程的角度简化查询的开发。对于索引,我们使用client.update(request, RequestOptions.DEFAULT) 以便创建新文档并修改现有文档。

我们看到的问题是,索引被延迟了,几乎延迟了 5 分钟。我看到他们在内部使用异步 http 调用。但这不应该花这么长时间,我在图书馆里找了一些时间选项,没有找到任何东西。我是否遗漏了什么或缺少官方文档?

【问题讨论】:

  • 您的索引是否设置了与默认设置不同的refresh_interval(即 1 秒)?
  • 这个索引有 "refresh_interval":"-1"

标签: elasticsearch elasticsearch-high-level-restclient elasticsearch-rest-client


【解决方案1】:

由于您的索引设置中有refresh_interval: 1,这意味着它永远不会是refreshed,除非您手动进行,这就是为什么您在更新后看不到数据。

这里有三个选项:

A.您可以使用refresh=true(或refresh=wait_for)参数调用_update 端点,以确保在您更新后立即刷新索引。

B.您可以在索引设置中简单地设置refresh_interval: 1s(或任何其他对您有意义的持续时间),以确保索引会定期自动刷新。

C.您可以在索引上显式地call index/_refresh 以在您认为合适的时候刷新它。

选项 B 在大多数用例中通常是有意义的。

【讨论】:

  • 是的,将 refresh_interval 设置为 1s 有帮助,我现在可以立即看到更新。
  • 太好了,很高兴它有帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
  • 2020-02-08
  • 2019-08-23
  • 2020-06-19
  • 1970-01-01
  • 1970-01-01
  • 2019-07-13
相关资源
最近更新 更多