Elasticsearch 高级 REST 客户端 - 索引有延迟
Elasticsearch high level REST client - Indexing has latency
我们终于开始使用高级 REST 客户端,以从后端工程的角度简化查询的开发。对于索引,我们使用 client.update(request, RequestOptions.DEFAULT)
以便创建新文档并修改现有文档。
我们看到的问题是,索引编制延迟了将近 5 分钟。我看到他们在内部使用异步 http 调用。但这不应该花这么长时间,我在图书馆里找了一些时间选项,没有找到任何东西。我是不是遗漏了什么或者缺少官方文档?
由于在您的索引设置中 refresh_interval: 1
,这意味着它永远不会 refreshed 除非您手动执行,这就是为什么您看不到刚更新后的数据的原因。
这里有三个选项:
一个。您可以使用 refresh=true
(或 refresh=wait_for
)参数调用 _update
端点,以确保在您更新后立即刷新索引。
乙。您只需在索引设置中设置 refresh_interval: 1s
(或任何其他对您有意义的持续时间),以确保索引会定期自动刷新。
C。您可以在索引上显式 call index/_refresh
以在您认为合适的时候刷新它。
选项 B 在大多数用例中通常是有意义的。
我们终于开始使用高级 REST 客户端,以从后端工程的角度简化查询的开发。对于索引,我们使用 client.update(request, RequestOptions.DEFAULT)
以便创建新文档并修改现有文档。
我们看到的问题是,索引编制延迟了将近 5 分钟。我看到他们在内部使用异步 http 调用。但这不应该花这么长时间,我在图书馆里找了一些时间选项,没有找到任何东西。我是不是遗漏了什么或者缺少官方文档?
由于在您的索引设置中 refresh_interval: 1
,这意味着它永远不会 refreshed 除非您手动执行,这就是为什么您看不到刚更新后的数据的原因。
这里有三个选项:
一个。您可以使用 refresh=true
(或 refresh=wait_for
)参数调用 _update
端点,以确保在您更新后立即刷新索引。
乙。您只需在索引设置中设置 refresh_interval: 1s
(或任何其他对您有意义的持续时间),以确保索引会定期自动刷新。
C。您可以在索引上显式 call index/_refresh
以在您认为合适的时候刷新它。
选项 B 在大多数用例中通常是有意义的。