elasticsearch aggregation 缓存

在工作中遇到一个问题,按照6个维度进行聚合,响应校验,平均需要300ms。看了相关资料后,采用以下方式解决:

  1. 启用数据压缩

transport.tcp.compress: true

2.  使用缓存

curl -XPUT ‘localhost:9200/yourIndex/_settings‘ -d‘

{ "index.requests.cache.enable": true }

并设置缓存占JVM堆的大小

indices.requests.cache.size: 5%

最后在请求总加入

setRequestCache(true).setSearchType(SearchType.QUERY_THEN_FETCH);

注意,使用DFS_QUERY_THEN_FETCH 缓存不会生效。

最终响应时间在30ms,少了一个数量级。

时间: 2024-08-29 10:08:06

elasticsearch aggregation 缓存的相关文章

elasticsearch aggregation 过程(未完)

在查询过程中,ES是将整个查询分成几个阶段的,大体如下: QueryPhase rescorePhase suggestPhase aggregationPhase FetchPhase 对于全文检索,可能还有DFSPhase.从源代码QueryPhase 类可以看出 @Override     public void execute(SearchContext searchContext) throws QueryPhaseExecutionException {          //创建A

Elasticsearch之elasticsearch5.x 新特性

其实,elasticsearch5.x 和 elasticsearch2.x 并不区别很大. 是因为,ELK里之前版本各种很混乱,直接升级到5.0了. 其实,elasticsearch5.x 按理来说是elasticsearch3.x,只是为了跟随ELK整体版本的统一.   下面给大家介绍一下 5.0 版里面的一些新的特性和改进 5.0? 天啦噜,你是不是觉得版本跳的太快了. 好吧,先来说说背后的原因吧. 相信大家都听说 ELK 吧,是 Elasticsearch . Logstash . Ki

elasticsearch filters特性

使用filters优化查询 ElasticSearch支持多种不同类型的查询方式,这一点大家应该都已熟知.但是在选择哪个文档应该匹配成功,哪个文档应该呈现给用户这一需求上,查询并不是唯一的选择.ElasticSearch 查询DSL允许用户使用的绝大多数查询都会有各自的标识,这些查询也以嵌套到如下的查询类型中: constant_score filterd custom_filters_score 那么问题来了,为什么要这么麻烦来使用filtering?在什么场景下可以只使用queries? 接

elasticsearch 性能监控基础

一.Elasticsearch 是什么 Elasticsearch是一款用Java编写的开源分布式文档存储和搜索引擎,可以用于near real-time存储和数据检索. 1.Elasticsearch简要组成 在开始探索性能指标之前,让我们来看看Elasticsearch的工作原理,在elasticsearch中,集群由一个或者更多的节点组成,如下图:  每个节点是Elasticsearch的单个运行实例,其"elasticsearch.yml"配置文件指定其所属的集群("

第05章 管理ElasticSearch

本章内容 如何选择正确的目录实现,使得ElasticSearch能够以高效的方式访问底层I/O系统. 如何配置发现模块来避免潜在的问题. 如何配置网关模块以适应我们的需求. 恢复模块能带来什么,以及如何更改它的配置. 如何查看段信息. ElasticSearch的缓存是什么样的,它的职责是什么,如何使用以及更改它的配置. 5.1 选择正确的目录实现-存储模块 存储模块是一个在配置集群时容易被忽视的模块,然而它非常重要.该模块允许用户控制索引的存储方式,例如,可以持久化存储(存储在磁盘上)或非持久

新浪是如何分析处理32亿条实时日志的?

服务介绍 随着实时分析技术的发展及成本的降低,用户已经不仅仅满足于离线分析.目前我们服务的用户包括微博,微盘,云存储,弹性计算平台等十多个部门的多个产品的日志搜索分析业务,每天处理约32亿条(2TB)日志. 技术架构 简单介绍一下服务的技术架构: 这是一个再常见不过的架构了: (1)Kafka:接收用户日志的消息队列 (2)Logstash:做日志解析,统一成json输出给Elasticsearch (3)Elasticsearch:实时日志分析服务的核心技术,一个schemaless,实时的数

elk集群安装配置详解

#  一:简介 ``` Elasticsearch作为日志的存储和索引平台: Kibana 用来从 Elasticsearch获取数据,进行数据可视化,定制数据报表: Logstash 依靠强大繁多的插件作为日志加工平台: Filebeat 用来放到各个主机中收集指定位置的日志,将收集到日志发送到 Logstash: Log4j 直接与 Logstash 连接,将日志直接 Logstash(当然此处也可以用 Filebeat 收集 tomcat 的日志). ``` ####  port ```

ELK入门与简单应用

1. ELK概述 ELK,也就是Elasticsearch.Logstash.Kibana三者的结合,是一套开源的分布式日志管理方案. 更多详情,请见https://github.com/jeanphorn/elk-stack Elasticsearch:负责日志存储.检索和分析 LogStash:负责日志的收集.处理 Kibana:负责日志的可视化 方案:  2. 环境搭建 为整体环境创建一个合适的目录,mkdir $project_path/ELK, project_path 根据情况而定,

016-elasticsearch【五】-Query DSL【1】-查询上下文,过滤上下文、match_all

一.概述 Elasticsearch提供基于JSON的完整查询DSL来定义查询.将Query DSL视为查询的AST,由两种类型的子句组成: 叶子查询子句 叶子查询子句在特定字段中查找特定值,例如匹配,词条或范围查询.这些查询可以自己使用. 复合查询子句 复合查询子句包装其他叶或复合查询,并用于以逻辑方式(例如bool或dis_max查询)组合多个查询,或者改变它们的行为(如constant_score查询). 查询子句的行为有所不同,具体取决于它们是在查询上下文还是过滤器上下文中使用. 二.查