segments&cache

Posted 凌渡冰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:同上

以上是关于segments&cache的主要内容,如果未能解决你的问题,请参考以下文章

PHP深入浅出学Yii2缓存Cache组件源码级详解(收藏不亏)

PHP深入浅出学Yii2缓存Cache组件源码级详解(收藏不亏)

Filter 使浏览器不缓存的过滤器

使用过滤器控制浏览器的缓存时间(转载)

缓存穿透与布隆过滤器BloomFilter那些事

JSF 缓存静态资源过滤器