本章讨论搜索速度优化:搜索速度与系统资源、数据索引方式、查询方式等多方面

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 调优之 搜索速度优化的更多相关文章

  1. OCM_第十四天课程:Section6 —》数据库性能调优_各类索引 /调优工具使用/SQL 优化建议

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  2. InfoQ —— 百度搜索速度优化

    本篇源自InfoQ —— <百度搜索速度优化> 好多名词不了解... 相关文档下载链接 背景 许霞,毕业于浙江大学.08年加入百度运维部. 本篇讲座主要讲述百度关于速度的优化,包括PC端和 ...

  3. Elasticsearch 调优 (官方文档How To)

    How To Elasticsearch默认是提供了一个非常简单的即开即用体验.用户无需修改什么配置就可以直接使用全文检索.结果高亮.聚合.索引功能. 但是想在项目中使用高性能的Elasticsear ...

  4. 别再说你不会 ElasticSearch 调优了,都给你整理好了

    来源:http://tinyurl.com/y4gnzbje 第一部分:调优索引速度 第二部分-调优搜索速度 第三部分:通用的一些建议 英文原文:https://www.elastic.co/guid ...

  5. ElasticSearch 调优

    来源:http://tinyurl.com/y4gnzbje 第一部分:调优索引速度 第二部分-调优搜索速度 英文原文:https://www.elastic.co/guide/en/elastics ...

  6. 别再说你不会ElasticSearch调优了,都给你整理好了

    ES 发布时带有的默认值,可为 ES 的开箱即用带来很好的体验.全文搜索.高亮.聚合.索引文档 等功能无需用户修改即可使用,当你更清楚的知道你想如何使用 ES 后,你可以作很多的优化以提高你的用例的性 ...

  7. MySql(十一):MySQL性能调优——常用存储引擎优化

    一.前言 MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种选择固然是好事,但是需要我们理解掌握的知识也会增加很多.本章将介绍最为常用的两种存储引擎进行针对性的优化建议. 二.MyISAM存储 ...

  8. Tomcat 调优及 JVM 参数优化

    Tomcat 本身与 JVM 优化 Tomcat:调整Server.xml JVM:bat启动服务方式的话修改catalina.bat 服务式启动的话参考:http://www.cnblogs.com ...

  9. Tomcat7 调优及 JVM 参数优化

      Tomcat 的缺省配置是不能稳定长期运行的,也就是不适合生产环境,它会死机,让你不断重新启动,甚至在午夜时分唤醒你.对于操作系统优化来说,是尽可能的增大可使用的内存容量.提高CPU 的频率,保证 ...

随机推荐

  1. python 之 数据库(字段的约束条件,表之间的关系)

    10.6 约束条件 10.61 not null .default create table t15( id int, name ) not null, sex enum('male','female ...

  2. PB笔记之数据窗口行不能编辑的原因

    这里不打勾就不能编辑行

  3. mtd-utils 的 使用

    关于编译可以查看文章:<Arm-Linux 移植 mtd-utils 1.x> 查看信息 使用命令前用cat /proc/mtd 查看一下mtdchar字符设备:或者用ls -l /dev ...

  4. 偶数矩阵 Even Parity,UVa 11464

    题目描述 Description 给你一个n*n的01矩阵(每个元素非0即1),你的任务是把尽量少的0变成1,使得每个元素的上.下.左.右的元素(如果存在的话)之和均为偶数.如图所示的矩阵至少要把3个 ...

  5. java常用配置文件头部声明

    spring: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http: ...

  6. ionic开发遇到的问题总结

    前言 ionic是一个用来开发混合手机应用的,开源的,免费的代码库.可以优化html.css和js的性能,构建高效的应用程序,而且还可以用于构建Sass和AngularJS的优化.ionic会是一个可 ...

  7. Django配置websocket请求接口

    1.settings.py INSTALLED_APPS = [ '...', 'channels', '...', ] ASGI_APPLICATION = 'server.routing.appl ...

  8. nginx Proxy Cache 配置

    总结一下 proxy cache 设置的常用指令及使用方法: proxy_cache proxy_cache zone | off 配置一块公用的内存区域的名称,该区域可以存放缓存的索引数据.注意:z ...

  9. 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 ...

  10. zabbix推送内存监控单应用shell

    利用top方式获取指定第三方的内存使用率 #!/bin/bash process=$1 if [ ! -z $process ];then cd /zabbix/zabbix-agent/script ...