segments&cache
Segments
执行效果
- 命令 在 sense 里边执行 GET /abcd/_segments 前边的是索引名称,后边是请求 段信息
- 说明 索引是面向分片的,是由于索引是由一个或多个分片(以及它的副本)构成,每个分片就是一个物理上的Lucene索引
- 返回
名词解释
- 已提交索引段:指那些已经执行了提交命令的段,意味着已经提交到磁盘持久化并且是只读的;
- 可查询索引段:可供查询使用的索引段;
- 索引的代:告诉我们索引有多“老”,起初创建的索引段的代为0,接着是1,依次继续;
- 被标记为已删除的索引数:这些文档会在索引段合并的过程中被删除;
Cache
分类
- 过滤器缓存
- 字段数据缓存
哪些场景会使用到缓存
- 父子索引
- 切面
- 基于索引字段的高效排序
过滤器缓存
索引级过滤器缓存
index.cache.filter.type:类型 resident,soft,weak或node(默认值)
index.cache.filter.max_size:存储到缓存中的最大纪录数,默认为-1,应用于指定索引的某个分片的某个索引段上;
index.cache.filter.expire:指定过滤器缓存中记录的过期时间,默认为-1,60m代表60分钟;
节点级别过滤器缓存
应用于给定节点的所有分片,可以利用下边的参数设置缓存的大小:
indices.cache.filter.size:可以使用百分数 1% 占用当前最大堆内存的百分比,也可以设置数字 如 1024mb
移除策略:LRU
字段数据缓存
说明
字段数据缓存在我们涉及到 切面计算 或 基于字段数据排序使用
做法:加载相关字段的全部数据到内存中。
配置
index.fielddata.cache.type:同上
index.fielddata.cache.size:同上
index.fielddata.cache.expire:同上
过滤
上边的索引尤其是字段索引都是es的默认机制,将 切面计算的字段和排序的字段做的默认的fielddata索引,
现在我们选择性的将一些字段数据缓存做一个定制化
这样做的好处是:将一些低频词项甚至是错误的词从字段缓存中删除,降低字段缓存的总量;
基于词频和正则表达式过滤
只加载那些词频高于指定最小值且低于指定最大值的词项,词项的范围是针对索引段的。
{
...
properties:{
"field":{
"type":"string",
"index":"not_anlyzed",
"fielddata":{
"filter":{
"frequency":{
"min":0.01, 词项出现频率大于1%
"max":0.4, 词项出现频率小于40%
"min_segment_size":100 该索引段至少要有100个文档
},
“regex”:"^#.*" 词项必须以#开头
}
}
}
}
} 只有符合以上过滤条件的 词项 才会被缓存
清除缓存
- 清除全部缓存 _cache/clear
- 清除指定缓存 index/_cache/clear
- 清除指定类型缓存 index/_cache/clear?filter=true&field_data=false&bloom=true 清除索引的filter缓存和bloom缓存,保留fielddata字段数据缓存
- 清除指定字段缓存 index/_cache/clear?fields=title,price 清除字段为field和price的全部缓存
问题
- filtercache是如何存储和获取的?
- fielddatacache是如何存储和获取的?
- segments的创建和merge机制是怎样的?
segments&cache的更多相关文章
- Erlang 虚拟机内的内存管理(Lukas Larsson演讲听写稿)
Erlang核心开发者Lukas Larsson在2014年3月份Erlang Factory上的一个演讲详细介绍了Erlang内存体系的原理以及调优案例: http://www.erlang-fac ...
- Java中的注解是如何工作的?--annotation学习一
自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分.开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解.这篇文章中,我将向大家讲述 ...
- Elasticsearch 通关教程(七): Elasticsearch 的性能优化
硬件选择 Elasticsearch(后文简称 ES)的基础是 Lucene,所有的索引和文档数据是存储在本地的磁盘中,具体的路径可在 ES 的配置文件../config/elasticsearch. ...
- BUFFER CACHE之主要的等待事件
原因:资源紧张,等待其释放. 原因的原因:1. lgwr和DBWn进程写太慢:2. Buffer和latch不可用 原因的原因的原因:全表扫描.library cache latches数太多等. 视 ...
- Linux内存中的Cache真的能被回收么?
在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态: [root@tencent64 ~]# free ...
- guava cache使用和源码分析
guava cache的优点和使用场景,用来判断业务中是否适合使用此缓存 介绍常用的方法,并给出示例,作为使用的参考 深入解读源码. guava简介 guava cache是一个本地缓存.有以下优点: ...
- nginx cache的玩法
一.简介 Nginx版本从0.7.48开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当做Key,用Md5算法对Key进行哈希,得到硬盘上对应的哈希目录路径,从而将缓存内容保存在 ...
- 【转载】row cache lock
转自:http://blog.itpub.net/26736162/viewspace-2139754/ 定位的办法: --查询row cache lock等待 select event,p1 ...
- Google guava cache源码解析1--构建缓存器(3)
此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 下面介绍在LocalCache(CacheBuilder, CacheLoader)中调用的一些方法: Ca ...
随机推荐
- .net实现与excel的数据交互、导入导出
应该说,一套成熟的基于web的管理系统,与用户做好的excel表格进行数据交互是一个不可或缺的功能,毕竟,一切以方便客(jin)户(qian)为宗旨. 本人之前从事PHP的开发工作,熟悉PHP的都应该 ...
- MSSQL 2012安装报错之0x858C001B
之前安装 Microsoft Sql Server 2012 R2 的时候总是报这样的错误: SQL Server Setup has encountered the following error: ...
- 微信JSApi支付~订单号和微信交易号
返回目录 谈谈transactionId和out_trade_no 前一篇微信JSApi支付~坑和如何填坑文章反映不错,所以又写了个后篇,呵呵. 每个第三方在线支付系统中都会有至少两类订单号,其一为支 ...
- [javaSE] 注解-自定义注解
注解的分类: 源码注解 编译时注解 JDK的@Override 运行时注解 Spring的@Autowired 自定义注解的语法要求 ① 使用@interface关键字定义注解 ② 成员以无参无异常方 ...
- WPF 数据绑定 1_1 基础知识&绑定到元素属性
A.数据绑定基础: 数据源对象:WPF将从该对象中提取信息,交由目标对象进行显示. 目标对象:从数据源中提取信息,并赋给该对象的属性. B.绑定到元素属性 最简单的绑定情形则是将一个源对象指定为一个W ...
- ABP 初探 之 多语言
最近几天空闲时间比较多,就研究Abp的多语言,Abp是基于接口的依赖注入,有很多思想与方法都很好,需自己深入体会与应用,转化成自己的思想应用于实践. 本篇介绍基于 开源Demo ModuleZeroS ...
- php动态更改post_max_size, upload_max_filesize等值
在配置文件里 有些PHP 配置选项可以用int_set() 函数 直接在 项目里修改.但是有些值确不行.例如和上传文件有关的post_max_size和upload_max_filesize int_ ...
- jQuery常用方法和函数
jQuery 事件 bind() 方法:被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数 $(selector).bind({event:function, event:function ...
- 带你使用h5开发移动端小游戏
带你使用h5开发移动端小游戏 在JY1.x版本中,你要做一个pc端的小游戏,会非常的简单,包括说,你要在低版本的浏览器IE8中,也不会出现明显的卡顿现象,你只需要关心游戏的逻辑就行了,比较适合逻辑较为 ...
- 【requireJS源码学习03】细究requireJS的加载流程
前言 这个星期折腾了一周,中间没有什么时间学习,周末又干了些其它事情,这个时候正好有时间,我们一起来继续学习requireJS吧 还是那句话,小钗觉得requireJS本身还是有点难度的,估计完全吸收 ...