42.1 分布式集群调优策略
- 主要从index写调优和Search读两个方面进行调优
- Index 写调优
- 副本数设置为0
- 如果是集群首次灌入数据, 可以将副本数设置为0,写入完毕后再调整回去, 这样副本分片只需要拷贝数据, 节省了索引过程
- 自动生成doc ID
- 通过ES写入流程可以看出,如果写入doc是指定了id, 则ES会先尝试读取原doc的版本号以判断是否需要更新
42.2 Index 写调优
- 合理设置mappings
- 将不需要建立索引的字段index属性设置为no或not_analyzed。 即对字段不分词或不索引,可以减少很多运算操作
- 减少字段内容长度, 如果原始数据的大段内容无需全部建立索引, 可以尽量减少不必要的内容
- 使用不同的分析器(analyzer), 不同的分析器在索引过程中复杂度也有较大的差异
- 调整_source字段
- source字段用来存储doc原始数据, 对部分不需要存储的字段 ,可以通过includes 、excludes过滤, 或将source禁用, 一般用于索引和数据分离, 这样可以降低I/O 压力
- 对analyzed字段禁用norms
- norms用于在搜索时计算doc的评分, 如果不需要评分, 可以将其禁用
"title": {
"type": "string",
"norms": {
"enabled": false
}
- 调整索引的刷新间隔
- 该参数默认是1s, 强制ES每秒刷新一个segment, 从而保证新写入的数据近实时的可见,可被搜索到
- 如果将该参数刷新的时间调高, 降低刷新次数,减少资源消耗, 但也牺牲了ES的实时性
PUT /my_index/_settings
{
"index" : {
"refresh_interval": "30s"
}
}
大数据视频推荐:
CSDN
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通