Elasticsearch教程(33) ES优化总结
2023-09-27 14:26:50 时间
这里暂不考虑ES的集群优化,一般在公司里有专门的运维去维护和优化ES集群,而且每个客户现场的硬件条件各不相同,不好强求客户去升级他的硬件。
这里只是从开发和设计人员的角度去看如何尽量提高ES的性能,避免掉进常见的坑。
优化设计
● 要理解mapping的字段属性,知道如何选择text还是keyword还是int,枚举字段用keyword
● 不要对text类型排序聚合,不要设置fielddata=true,应使用复合字段,ES6后指定预排序
● 知道字段是否要索引,index属性,例如备注remark
● 无需聚合或排序的字段, 需要把doc_values设为false, 节约磁盘空间
● 应用代码中使用索引的别名,方便修改mapping的字段类型
● 采取冷热分离机制,热数据存储到 SSD,冷数据定期压缩
● 数据预热,自己主动访问刷到filesystem cache中
● 数据量大,动态索引,index_时间
● 扩大内存, filesystem cache越大越好,减少走磁盘
● 少量数据需要检索,es + hbase架构
● 避免深分页, 用Scroll 或是 Search After
写入优化
● 尽量使用自动生成的 id
● 大批量写入,采取批量写入
● 大批量写入,副本数设置为0,以后再修改
查询优化
● 禁用wildcard
● 禁用terms查询上千数据
● 如果不要评分,使用filter代替query
● 设置合理的路由机制
● 聚合时:collect_mode深度优先/广度优先的选择
相关文章
- 报错:ES No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender
- ES写入速度提升
- ES 10 - 如何使用Elasticsearch的索引模板(index template)
- Linux(centos7)如何部署ElasticSearch7.6.2单节点跟集群(es部署指南)
- ElasticSearch入门之es使用shell命令操作索引,curl操作索引 08
- ES(Elasticsearch)日志类型
- ElasticSearch第十八讲 ES-Master节点职责和ES是如何做到数据实时性的
- ElasticSearch第十五讲 ES数据写入过程和写入原理以及数据如何保证一致性
- ElasticSearch第九讲 ES 分词器与安装使用分析器
- ElasticSearch第六讲 ES 三种分页查询from+size / Scroll /search_after
- ElasticSearch第七讲 ES查询速度为什么那么快
- ElasticSearch第八讲 ES索引字段映射类型以及动态映射相关操作
- ElasticSearch第十三讲 ES 主要的操作增删查改与分组分页
- docker安装es集群
- 《OpenGL ES 3.x游戏开发(下卷)》一1.3 一致缓冲区对象
- 《OpenGL ES 3.x游戏开发(下卷)》一第2章 顶点着色器的妙用
- 《OpenGL ES 2.0游戏开发(上卷):基础技术和典型案例》——6.4节点法向量和面法向量
- 《OpenGL ES 2.0游戏开发(上卷):基础技术和典型案例》——导读
- 请说说CommonJS和ES module的区别
- 《OpenGL ES应用开发实践指南:Android卷》—— 第2章 定义顶点和着色器
- es
- Es ElasticSearch 常用命令