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 的频率,保证 ...
随机推荐
- HCIA SWITCHING&ROUTTING 笔记——第一章 TCP/IP基础知识(3)
4 ICMP协议 4.1 概念 ICMP即 Internet Contorl Message Protocol,即Internet控制消息协议,是网络层的一个重要协议.ICMP协议用来在网络设备间传递 ...
- go语言的安装及环境配置
Go语言开发环境搭建(ubuntu) 1.清理.卸载之前的 go 语言环境: 删除go目录:sudo rm -rf /usr/local/go 删除软链接(如果建立了软链接):sudo rm -rf ...
- Istio技术与实践6:Istio如何为服务提供安全防护能力
凡是产生连接关系,就必定带来安全问题,人类社会如此,服务网格世界,亦是如此. 今天,我们就来谈谈Istio第二主打功能---保护服务. 那么,便引出3个问题: l Istio凭什么保护服务? l ...
- wannafly 挑战赛10 小H和游戏
题解: 先利用dfs找出各个节点之间的关系.然后利用一个sum[i][j] 数组 sum[i][0] 表示i这个节点收到影响的次数 sum[i][1]表示i这个节点的儿子们收到影响的次数 sum[i ...
- kafka的生产者配置以及发送信息的三种方式
1.Fire-and-forget 这种方式是不管发送成功与否,客户端都会返回成功.尽管大多数的时候Kafka 在发送失败后,会自己重新自动再一次发送消息,但是也会存在丢失消息的风险 Producer ...
- Linux下OpenSSL加密解密压缩文件(AES加密压缩文件)
OpenSSL是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库.应用程序.SSL协议库.Openssl实现了SSL协议所需要的大多数算法.下面介绍使用Openssl进行文件的对称 ...
- 基于【 SpringBoot】一 || QQ授权流程
一.准备工作 1.qq开放平台应用申请,获取APP ID和APP Key 2.qq开放平台配置回调地址 二.服务器端生成授权链接 1.请求地址 https://graph.qq.com/oauth2. ...
- element-ui 文件上传
<el-form-item> <el-upload ref="upload" class="upload-demo" :action=&quo ...
- Java 之 缓冲流
一.缓冲流概述 缓冲流,也叫高效流,是对四个 FileXXX 流的增强,所有也有四个流,按照类型分类: 字节缓冲流:BufferedInputStream,BufferedOutputStream 字 ...
- Java 之 字符输入流[Reader]
一.字符输入流 java.io.Reader 抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中. 它定义了字符输入流的基本共性功能方法. public void close() :关 ...