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

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

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

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.