对于数据库逻辑删除的商品或帖子数据是否应该从 Elasticsearch 删除?

2018-02-15 12:00:35 +08:00
 doggg

请教一下各位用 Elasticsearch 的公司的前辈一个问题,product,post 表通常有一个 status 表示逻辑删除的字段,当 status=1 表示逻辑删除,此时应不应该从 Elasticsearch 删除这个文档。

删除:直接从 Elasticsearch 搜索出来的都是可用的文档

不删除:更新 ES 里的文档,但这样好像需要加过滤剔除 status=1 文档。

不知道各位前辈的公司习惯用那种方式,各有什么优缺点。

5230 次点击
所在节点    Elasticsearch
15 条回复
mazyi
2018-02-15 12:29:36 +08:00
过滤,逻辑保持一致
doggg
2018-02-15 13:11:39 +08:00
@mazyi 您的意思是选择不删除 ES 的数据,查询的时候使用过滤?
mhycy
2018-02-15 13:23:45 +08:00
看用途,如果 ES 仅仅是用于搜索只是一个缓存作用数据能以来数据库重建的话
为了性能应该从 ES 删除。

如果有别的用途则另外考虑
misaka19000
2018-02-15 13:40:58 +08:00
应该删除
doggg
2018-02-15 14:52:55 +08:00
@mhycy 对我最主要的用途应该就是从 DB 拿出来,在做一些对象补充,然后 index 到 ES 而已,暂时没想到有什么骚操作的需求。


@misaka19000 为什么呢?
cxbig
2018-02-15 16:32:13 +08:00
保持整洁,删掉的字段我们会做 reindex 同步到 ES。
doggg
2018-02-15 16:38:13 +08:00
@cxbig 所以查询的时候也是用过滤掉逻辑删除的文档吗?
kslr
2018-02-15 17:19:51 +08:00
如果没有特殊要求就直接同步了,少一点麻烦是一点。
precisi0nux
2018-02-16 04:43:22 +08:00
删了,es 搜索用的,不要和数据储存用的数据库搞混了。
scriptB0y
2018-02-16 11:18:36 +08:00
同建议删了,这种本来就是冷数据,所有的数据信赖数据库里面的就可以了,ES 保持新鲜的有效数据。
doggg
2018-02-16 12:14:37 +08:00
@precisi0nux
@scriptB0y
公司里面老代码也删除了,看来赞同删除的声音多一些呀。
chzyer
2018-02-16 18:44:12 +08:00
看量看业务,我司冷热数据比 8:1,你觉得删不删
dangyuluo
2018-02-17 05:03:36 +08:00
感觉还是删掉吧
cxbig
2018-02-17 07:15:59 +08:00
@doggg
文档做标记是必须的,所有的产品都应该有一个类似 disabled 的 flag 来标记产品是否上线。
至于确定以后不再售卖的商品,删掉文档也是值得推荐的。
doggg
2018-02-17 19:31:58 +08:00
@chzyer 如果说起这个问题,看来还是删了为妙

@cxbig 嗯,我们也有 on_line 的字段表示是否上架的,综合来看对于数据库逻辑删除的还是 conngES 删掉吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/430824

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX