Elasticsearch 调优之 搜索速度优化
本章讨论搜索速度优化:搜索速度与系统资源、数据索引方式、查询方式等多方面
1、为文件系统cache预留足够的内存
1)应用程序一般情况下,读写都会被操作系统“cache”
2)cache保存在物理内存中,命中cache可以降低对磁盘的读写频率
3)搜索对系统cache很依赖,如果搜索从磁盘读取数据,则一定会产生相对较高的延迟
4)应该至少为系统cache预留一般的可用内存,更大内存可以有更高的cache命中率
5)线上应禁用swap
2、使用更快的硬件
1)写入对CPU更敏感、而搜索对IO能力需求更大,使用SSD会比旋转类介质好
2)尽量避免使用NFS等远程文件系统。如果NFS比本地系统慢3倍,则搜索场景响应速度会慢10倍
3)如果搜索类型属于计算型,则可以考虑更快的CPU
3、文档模型
1)文档应该合理建模,以降低搜索时的成本
2)避免join操作,嵌套(nested)回使查询慢几倍
3)父子关系可能使查询慢数百倍
4)如果可以通过非规范化文档来回答相同的问题,则可以显著的提高搜索速度
4、预索引数据
可以针对某些查询的模式来优化数据的索引方式
1)
5、字段映射
某些字段是数值类型,但是并不意味着总是应该被映射为数值类型,例如,
一些标识符将它们映射为keyword可能会比integer或long更好。
6、避免使用脚本
应避免使用脚本
如果一定要用,则应该优先考虑painless和expressions
7、优化日期搜索
8、只为读索引执行force-merge
1)为不再更新的只读索引执行force merge,将Lucene索引合并为单个分段,可以提升查询速度
2)如果Lucene索引存在多个分段,每个分段会单独执行搜索再将结果合并,将只读索引
强制合并为一个Lucene分段,不仅可以
Elasticsearch 调优之 搜索速度优化的更多相关文章
- OCM_第十四天课程:Section6 —》数据库性能调优_各类索引 /调优工具使用/SQL 优化建议
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
- InfoQ —— 百度搜索速度优化
本篇源自InfoQ —— <百度搜索速度优化> 好多名词不了解... 相关文档下载链接 背景 许霞,毕业于浙江大学.08年加入百度运维部. 本篇讲座主要讲述百度关于速度的优化,包括PC端和 ...
- Elasticsearch 调优 (官方文档How To)
How To Elasticsearch默认是提供了一个非常简单的即开即用体验.用户无需修改什么配置就可以直接使用全文检索.结果高亮.聚合.索引功能. 但是想在项目中使用高性能的Elasticsear ...
- 别再说你不会 ElasticSearch 调优了,都给你整理好了
来源:http://tinyurl.com/y4gnzbje 第一部分:调优索引速度 第二部分-调优搜索速度 第三部分:通用的一些建议 英文原文:https://www.elastic.co/guid ...
- ElasticSearch 调优
来源:http://tinyurl.com/y4gnzbje 第一部分:调优索引速度 第二部分-调优搜索速度 英文原文:https://www.elastic.co/guide/en/elastics ...
- 别再说你不会ElasticSearch调优了,都给你整理好了
ES 发布时带有的默认值,可为 ES 的开箱即用带来很好的体验.全文搜索.高亮.聚合.索引文档 等功能无需用户修改即可使用,当你更清楚的知道你想如何使用 ES 后,你可以作很多的优化以提高你的用例的性 ...
- MySql(十一):MySQL性能调优——常用存储引擎优化
一.前言 MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种选择固然是好事,但是需要我们理解掌握的知识也会增加很多.本章将介绍最为常用的两种存储引擎进行针对性的优化建议. 二.MyISAM存储 ...
- Tomcat 调优及 JVM 参数优化
Tomcat 本身与 JVM 优化 Tomcat:调整Server.xml JVM:bat启动服务方式的话修改catalina.bat 服务式启动的话参考:http://www.cnblogs.com ...
- Tomcat7 调优及 JVM 参数优化
Tomcat 的缺省配置是不能稳定长期运行的,也就是不适合生产环境,它会死机,让你不断重新启动,甚至在午夜时分唤醒你.对于操作系统优化来说,是尽可能的增大可使用的内存容量.提高CPU 的频率,保证 ...
随机推荐
- 游记-NOI2019
Day -18 被各路julao们轮番吊打-- Day -12 鸽子F发布了笔试题库,然而并没有 "MLE全场记零分" 的操作 Day -8 广二体育馆机器装配完毕,误闯开幕式表演 ...
- 封装函数(累计和、K型、金字塔)
// 假设有个函数,只要传参数进去,就能统计累加的结果 function test($n){ if($n==1){ return 1; } return $n+test($n-1);}echo tes ...
- Java单例最好的设计模式:Spring 之 GlobalAdvisorAdapterRegistry
先上代码: public abstract class GlobalAdvisorAdapterRegistry { /** * Keep track of a single instance so ...
- CentOS 6.x 配置iptables
CentOS 6.x 配置iptables 来源 https://www.cnblogs.com/chillax1314/p/7976067.html iptables -P INPUT DROP-- ...
- Feign的理解
Feign是什么? Feign是一个http请求调用的轻量级框架,也可以说是声明式WebService客户端 Feign的作用 可以以Java接口注解的方式调用Http请求,它使java调用Http请 ...
- element-ui 省市区联动组件 el-cascader
<el-form-item label="省市 :" prop="description"> <el-cascader size=" ...
- js入门之DOM动态创建数据
一. 知识点回顾 1. DOM结构 nodeName: '' 标签名 nodeType: '' 类型 1元素节点 2属性节点 3文本节点 nodeValue: '' 如果是元素节点 nodeValue ...
- (一)react-native开发系列之Mac开发环境配置
写在前面 在开始之前,先说下选择react-native的背景原因 最近一年来,公司为了节省开发成本,以及降低维护成本,指派我开始做起前端开发app的工作,我和公司的小伙伴们就开始了漫长的app开发之 ...
- Mysql语句练习记录
使用的sql图形软件:SQLyogEnt 使用的数据库:MYSQL5.7 软件地址: 链接:https://pan.baidu.com/s/1lajyXaSnmrO1v5v987NOoA 提取码:i3 ...
- 【DRF框架】版本控制组件
DRF框架提供的版本控制组件 核心代码: version, scheme = self.determine_version(request, *args, **kwargs)req ...