当前位置: 首页 > news >正文

提升Elasticsearch性能的一些经验

  • 分片查询缓存(Shard Request Cache)

ES 层面的缓存实现,封装在 IndicesRequestCache 类中。缓存的 Key 是整个客户端请求,缓存内容为单个分片的查询结果。主要作用是对聚合的缓存,查询结果中被缓存的内容主要包括:Aggregations(聚合结果)、Hits.total、以及 Suggestions等。

并非所有的分片级查询都会被缓存。只有客户端查询请求中 size=0 的情况下才会被缓存。其他不被缓存的条件还包括 Scroll、设置了 Profile 属性,查询类型不是 QUERY_THEN_FETCH,以及设置了 requestCache=false 等。另外一些存在不确定性的查询例如:范围查询带有 Now,由于它是毫秒级别的,缓存下来没有意义,类似的还有在脚本查询中使用了 Math.random() 等函数的查询也不会进行缓存。

当有新的 Segment 写入到分片后,缓存会失效,因为之前的缓存结果已经无法代表整个分片的查询结果。所以分片每次 Refresh 之后,缓存会被清除。

  • 节点查询缓存/过滤器缓存(Node Query Cache /Filter Cache)

Lucene 层面的缓存实现,封装在 LRUQueryCache 类中,默认开启。缓存的是某个 Filter 子查询语句在一个 Segment 上的查询结果。

相关文章:

  • cloudera-agent一键卸载脚本
  • gem5 RubyPort: mem_request_port作用与连接 simple-MI_example.py
  • vue3 H5项目中实现PDF预览
  • junit-mock-dubbo
  • 如何实现酷狗音乐pc页面点击播放时,打开多个歌曲播放时,始终在一个播放页面,(标签页的通讯)
  • GEM5 Garent CPU cache消息传递路径:1. NI部分
  • redis基本用法学习(C#调用CSRedisCore操作redis)
  • 动态代理jdk的Proxy与Spring的CGlib
  • Python之Django项目的功能配置
  • 音视频的编码格式与封装格式
  • 图像识别SLIC、Haralick texture features(自备)
  • 3.1 C语言之控制流语句
  • 【四】记一次关于架构设计从0到1的讨论
  • prometheus二进制安装
  • 【Flink-Kafka-To-ClickHouse】使用 Flink 实现 Kafka 数据写入 ClickHouse
  • $translatePartialLoader加载失败及解决方式
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 345-反转字符串中的元音字母
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • Django 博客开发教程 16 - 统计文章阅读量
  • Odoo domain写法及运用
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Twitter赢在开放,三年创造奇迹
  • TypeScript实现数据结构(一)栈,队列,链表
  • yii2中session跨域名的问题
  • 当SetTimeout遇到了字符串
  • 官方解决所有 npm 全局安装权限问题
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端知识点整理(待续)
  • 删除表内多余的重复数据
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 移动端解决方案学习记录
  • 《天龙八部3D》Unity技术方案揭秘
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • 第二十章:异步和文件I/O.(二十三)
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​马来语翻译中文去哪比较好?
  • ​批处理文件中的errorlevel用法
  • ​虚拟化系列介绍(十)
  • #预处理和函数的对比以及条件编译
  • (4)logging(日志模块)
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)winform之ListView
  • (转)程序员疫苗:代码注入
  • (转)负载均衡,回话保持,cookie
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .cfg\.dat\.mak(持续补充)
  • .Mobi域名介绍
  • .NET Core 通过 Ef Core 操作 Mysql
  • .net mvc 获取url中controller和action
  • .NetCore项目nginx发布
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @RequestParam,@RequestBody和@PathVariable 区别