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 的频率,保证 ...
随机推荐
- python 之 数据库(字段的约束条件,表之间的关系)
10.6 约束条件 10.61 not null .default create table t15( id int, name ) not null, sex enum('male','female ...
- PB笔记之数据窗口行不能编辑的原因
这里不打勾就不能编辑行
- mtd-utils 的 使用
关于编译可以查看文章:<Arm-Linux 移植 mtd-utils 1.x> 查看信息 使用命令前用cat /proc/mtd 查看一下mtdchar字符设备:或者用ls -l /dev ...
- 偶数矩阵 Even Parity,UVa 11464
题目描述 Description 给你一个n*n的01矩阵(每个元素非0即1),你的任务是把尽量少的0变成1,使得每个元素的上.下.左.右的元素(如果存在的话)之和均为偶数.如图所示的矩阵至少要把3个 ...
- java常用配置文件头部声明
spring: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http: ...
- ionic开发遇到的问题总结
前言 ionic是一个用来开发混合手机应用的,开源的,免费的代码库.可以优化html.css和js的性能,构建高效的应用程序,而且还可以用于构建Sass和AngularJS的优化.ionic会是一个可 ...
- Django配置websocket请求接口
1.settings.py INSTALLED_APPS = [ '...', 'channels', '...', ] ASGI_APPLICATION = 'server.routing.appl ...
- nginx Proxy Cache 配置
总结一下 proxy cache 设置的常用指令及使用方法: proxy_cache proxy_cache zone | off 配置一块公用的内存区域的名称,该区域可以存放缓存的索引数据.注意:z ...
- The version of SOS does not match the version of CLR you are debugging
分析dump文件时,由于客户生产环境与分析dump文件的环境不一致,常常会出现下面的错误 The version of SOS does not match the version of CLR yo ...
- zabbix推送内存监控单应用shell
利用top方式获取指定第三方的内存使用率 #!/bin/bash process=$1 if [ ! -z $process ];then cd /zabbix/zabbix-agent/script ...