一种方案是我想要的数据都存 ES 里,数据输出只从 ES 出, 另一种方案是 ES 只存检索数据,拿到主键后再去数据库再捞一遍返回 你们都是怎么做的呢
1
sadfQED2 2019-09-16 12:54:07 +08:00 via Android
看业务需求而定,这两种我们都有使用
|
2
chendy 2019-09-16 13:35:12 +08:00
ES 的批量修改和并发控制比较头疼…不如直接用数据库来的舒服
但是如果用了数据库就要做数据同步 视具体场景而定吧 |
3
vebuqi 2019-09-16 13:41:18 +08:00
ES 检索拿到 item id,再用 item id 去取 item profile
|
4
misaka19000 2019-09-16 13:49:43 +08:00
看数据量吧,数据量不大就全部存在 ES 就好了
|
5
zzl22100048 2019-09-16 13:55:16 +08:00
看索引字段比重,要是所有字段都要做索引,你想不塞 es 也不行
|
6
LeeSeoung 2019-09-16 15:02:54 +08:00
简要放 es,详细放数据库
|
7
xuanbg 2019-09-16 16:32:46 +08:00
我们是后一种,ES 只放 ID+列表项+搜索项,列表是 ES 直出,详情 MySQL 根据 ID 查询。
|
8
linxiaojialin 2019-09-17 10:05:16 +08:00
我们 2 种都有。场景:
1.搜索商品:全部存 ES,从 ES 出;商品信息相对固定,又搜索频率高,直接拿 ES 快速搜索。 2.搜索文章:文章内容存 ES,从 ES 检索出 ID,再捞一遍数据库,同时 with 当前用户数据(浏览量、点赞、收藏、热度等等);文章搜索频率比较低,又侧重不停变化的用户数据,需要拿数据库的最新数据。 |