码迷,mamicode.com
首页 > 其他好文 > 详细

关于 elasticsearch 近实时特征的思考

时间:2020-05-10 21:00:51      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:包含   通过   列表   _for   elastics   表数   没有   文档   code   

一份文档被索引之后,需要等待一段时间才能被查询到。这一性质维护了 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 近实时特征的思考

标签:包含   通过   列表   _for   elastics   表数   没有   文档   code   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!