doc_values与fielddata

参考文档

ElasticSearch入门 第八篇:存储

https://www.cnblogs.com/ljhdo/p/5016852.html

文档值与顺排索引都是用作排序和聚合操作。

doc_values文档值

ElasticSearch使用列式存储实现排序和聚合查询。

可以利用操作系统的文件系统缓存来保持快速访问而不是直接用JVM堆内存。

        Doc Values是在字段索引时与倒排索引同时生成,存储在硬盘上。如果不需要对字段执行排序或聚合操作,可以禁用字段的文档值,以节省硬盘空间。除了字符类型的分析字段之外,其他字段类型都支持文档值存储。默认情况下,字段的文档值存储是启用的。

fielddata顺排索引

      字符类型的分析字段,不支持文档值(doc_values),但是,支持fielddata数据结构,fielddata数据结构存储在JVM的堆内存中。

何时生成:

       倒排索引的各个段(segment)的数据存储在硬盘文件上,从整个倒排索引的段中读取字段数据之后,ElasticSearch引擎首先反转词条和文档之间的关系,创建文档和词条之间的关系,即创建顺排索引,然后把顺排索引存储在JVM的堆内存中。

使用经验:

       把倒排索引加载到fielddata结构是一个非常消耗硬盘IO资源的过程,因此,数据一旦被加载到内存,最好保持在内存中,直到索引段(segment)的生命周期结束。默认情况下,倒排索引的每个段(segment),都会创建相应的fielddata结构,以存储字符类型的分析字段值,但是,需要注意的是,分配的JVM堆内存是有限的,Fileddata把数据存储在内存中,会占用过多的JVM堆内存,甚至耗尽JVM赖以正常运行的内存空间,反而会降低ElasticSearch引擎的查询性能。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值