Elasticsearch高级REST客户端-索引有延迟



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

我们看到的问题是,索引被延迟了,几乎延迟了5分钟。我看到他们在内部使用异步http调用。但这应该不会花那么长时间,我在图书馆里找了一些时间选择,但什么也没找到。我是不是遗漏了什么,或者官方文件不见了?

由于refresh_interval: 1在索引设置中,这意味着除非手动刷新,否则永远不会刷新它,这就是为什么更新后不会看到数据的原因。

这里有三个选项:

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

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

C。您可以在索引上显式调用index/_refresh,以便在您认为合适的时候刷新它。

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

关于使用刷新wait_for的一些参考,但我很难找到在rest高级客户端中到底需要做什么。对于所有正在搜索这个答案的人:

IndexRequest request = new IndexRequest(index, DOC_TYPE, id);
request.setRefreshPolicy(WriteRequest.RefreshPolicy.WAIT_UNTIL);

相关内容

  • 没有找到相关文章

最新更新