首页 > 其他 > 详细

关于 elasticsearch 近实时特征的思考

时间:2020-05-10 20:40:57      阅读:32      评论:0      收藏:0      [点我收藏+]

一份文档被索引之后,需要等待一段时间才能被查询到。这一性质维护了 es 的性能承诺,但也限制了它的应用场景。截至本文撰写之日,es 已经更新到了 7.x 版本。然而,网络中几乎查询不到将其用作企业级主力搜索赋能工具的案例,也许大家选择了 RMDB,亦或是技术保密吧。

环境设定

假设,我们接到一项任务,将 RMDB 切换为 NoSQL 。其中,指定 es 为搜索引擎,指定一款仅包含主键索引的数据库来存储数据,kv/column/graph 数据库可以作为辅助工具。不考虑分布式一致性问题的前提下,如何去解决延时问题呢?

独立搜索场景

如果一个搜索请求是独立的,也就不存在因果关系。发起者对结果集的大小是没有预期的,通常情况下可以接受索引延迟。

非独立搜索场景

UI 交互场景

当用户新增了一条数据,刷新列表,期望看到新增的数据。

  1. 等到索引可见后,再响应新增请求。可以通过 sleep 命令等待 1s,或者在 es 请求中设置?refresh=wait_for

  2. 在处理列表请求时,等待 1s

  3. 对于未设置搜索条件的列表页,使用 redis 缓存最近新增的数据。并在组装列表数据时,添加这些缓存数据

后台程序 write_and_read 场景

关于 elasticsearch 近实时特征的思考

原文:https://www.cnblogs.com/WessonStar/p/12864775.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!