嘿~ 今天天气不错嘛

es频繁数据更新,如何优化

Elasticsearch | 作者 Trueno | 发布于2021年03月27日 | 阅读数:6545

我们这边有一个表大概200多万个doc,但是每个doc的静态分都会重新计算,也就是说我们对其中的100万个doc会频繁的更新,因为es更新策略是删掉一个doc,然后增加一个doc的模式,这样会导致频繁的段合并,有没有什么好的设计方案,能优化这类问题。谢谢
已邀请:

FFFrp

赞同来自: xzy

后台定期合并数据或者refresh设置大一点

zmc - ES PAAS、JuiceFS

赞同来自:

如果不想改逻辑,那就定期做一下forcemerge,还有一些写入优化;
根据描述的业务,感觉可以做一下拆分,200w文档一个index,每次都会重新计算score导致频繁更新,如果是统一做的更新,可以写到另一个index,通过别名平滑过度,然后删掉老的索引,避免了过多的isdeleted文件,也不需要再做force merge,比较是一个比较耗性能和磁盘的操作

JiangJibo - 喊我雷锋

赞同来自:

200w不算太大的数据,你可以用mysql表存储es里的docId,评分以及经常检索排序需要用到的字段,更新mysql里的评分就行。得到了docId后再去检索es,这样能避免频繁更新es导致的新能问题

God_lockin

赞同来自:

看静态分是做啥用的,可不可以用在es召回之后再进行计算?

要回复问题请先登录注册