如何提升ES集群的搜索以及索引性能

Elasticsearch | 作者 hyunwen | 发布于2019年09月05日 | 阅读数:140

集群里有6台机子(1主节点+ 1负载均衡+ 4数据节点)
一水的dell r510
Xeon 5500
32G
ssd(系统)+机械(数据)

之前纯索引数据的时候4亿5千万多文档(1小学+ 1副本)
ID是手动指定的刷新= -1
总索引速度在8000 / s左右主分片在4000 / s左右虽然不是很快但是还能接受
索引完成之后1T data,292 shards(主分片+副本)按时间每月创建索引
需要对每一个文档进行更新
需要对文档中的某字段(不止一处)
进行更新更新的内容需要从其他文档进行获取
刚开始的流程是:GET需要修改的文档 - >选取字段进行全索引搜索 - >将搜索结果与原文档合并进行更新
但是全索引搜索速度在秒级以上,所以这个想法就被传了解
为了缓解这个全索引搜索的问题另起了一个关系型数据库将需要获取的文档与原文档索引建立联系通过关系数据库(查询在10ms)所以流程变成了
GET需要修改的文档 - >数据库查询 - > GET需要获取的文档 - >将搜索结果与原文档合并进行更新采用
scoll按时间逆序从现在 到过去进行修改(获取的文档一定是在原文档之前的)因为字段中需要修改的内容不止一处所以需要获取的文档不止一个需要更新的版本也不止一次导致结果处理速度非常慢
指数速率在400 / s(主+副)
束手无策请教一下社区的老哥
已邀请:

要回复问题请先登录注册