`
kfcman
  • 浏览: 400108 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

elasticsearch中字段Doc_values解析

 
阅读更多

In-memory模式中,fielddata受到heap内存大小限制,虽然这个问题可以通过集群的横向扩容解决——可需要经常增加节点——而且即使加了,你还是会发现在其他一些资源利用不充分的节点上,在排序和聚合查询的时候仍然会消耗你大量的heap空间。

fielddata字段数据默认下,会频繁的在内存当中加载。但这不是唯一的方法,在索引数据时,fielddata字段数据还可以被写在磁盘中,这种方式可以提供和加载到内存中的一样的功能,而不会占用heap的内存空间。

 

Docvalues是在1.0.0之后加入到elasticsearch中的。通过基准测试与性能分析,各类的瓶颈——无论是elasticsearch还是lucene,都已经被发现并且已经被移除了。但是直到现在还是远远慢于字段数据放内存的in-memory方式。

1、存放在磁盘代替存放内存,可以允许你的集群负载大量fielddata字段数据而不会超量使用内存。这样,你的heap space就可以设置小一些了,对垃圾回收的速度有所帮助,理所当然的,节点也会更稳定些。

2、DocValues是索引时建立的,而不是搜索的时候。当通过非反向的反向索引搜索时候,in-memort方式,内存中的字段数据必须被频繁的读写,而doc vales 是预先建立的,并能更快的初始化。

像trade-off这种索引量大的搜索,访问fielddata会比较缓慢,设置docvalues会有显著的效果,在大量请求的时候,你甚至不会注意到你的搜索会变慢。结合更快的垃圾回收机制和初始化时间,你会留意到搜索性能会得到有效提升。

文件系统的缓存空间越多,docvalue的性能会越好。如果文件都是docvalues并且都位于文件系统的缓存中,那么访问这些文件的速度几乎与访问内存媲美的。而文件系统缓存由内核控制而非JVM。

启动DocValues

numeric, date, Boolean, binary, and geo-point这些字段以及not_analyzed的字符串可以设置Docvalues属性。一般不处理analyze的字符串字段。 Docvalues在mapping重的每个字段属性中定义,这样对于不同的字段,可以结合in-memory与docvalues使用。

PUT /music/_mapping/song

{

“properties” : {

“tag”: {

“type”:       “string”,

“index” :     “not_analyzed”,

“doc_values”: true

}

}

}

设置了docvalues之后,字段创建时,就是用磁盘存储fielddata而不是内存存储fielddata了。

就这样!不需要再配置其他东西,查询,聚合,排序,以及一般的功能脚本;他们现在都会用到docvalues了。

你可以随便的使用docvalues这参数。用得越多,你使用的heap内存空间就可以越少。在不久的将来,docvalues应该会变成默认的参数。

原文来自:http://www.elastic.co/guide/en/elasticsearch/guide/current/doc-values.html#_enabling_doc_values

分享到:
评论

相关推荐

    Elasticsearch 技术解析与实战.zip

    112 3.3.8 _source字段 114 3.3.9 _type字段 115 3.3.10 _uid字段 115 3.4 映射参数 116 3.4.1 analyzer参数 116 3.4.2 boost参数 118 3.4.3 coerce参数 119 3.4.4 copy_to参数 120 3.4.5 doc_values参数 121 3.4.6 ...

    ElasticSearch官方测试数据

    Elasticsearch(ES)是一种流行的开源全文搜索引擎,它基于Lucene库构建,被广泛用于大数据分析、日志聚合、实时搜索和索引等场景。官方提供的测试数据集是检验Elasticsearch功能、性能和稳定性的关键资源,可以帮助...

    Elasticsearch学习笔记1

    Fielddata 是Elasticsearch在内存中存储字段值以便进行排序和聚合的一种方式。高频率的fielddata回收可能表示资源紧张或性能问题。通过使用`indices-stats API`和`nodes-stats API`,你可以分别按索引和节点监控...

    一款基于Java注解的elasticsearch mapping生成工具,支持ES 5.2.0所有可选参数.zip

    1. **全面支持ES 5.2.0的可选参数**:这意味着工具能够处理5.2.0版本中所有映射相关的配置选项,包括字段类型(如text、keyword、date等)、分析器配置、字段属性(如store、doc_values等),以及更复杂的映射结构,...

    ElasticSearch搜索引擎常见面试题总结

    但在Elasticsearch 6.0版本后,已经废弃了类型概念,提倡一个索引中只包含一种类型的数据。 - **文档(document)**:是最小的数据单元,每个文档由多个字段(field)组成,相当于数据库的一行记录。 - **字段(field)*...

    SpringBoot集成Elasticsearch7.4 实战.pdf

    此外,还有copy_to功能,它能够将多个字段的值合并到一个字段中,并且可以对doc_values进行配置,以便优化数据的读取性能。dynamic设置也是Elasticsearch索引管理中的一个重要方面,它可以动态添加字段。 ...

    ES在华为电信软件运维中的应用1

    在华为的电信软件运维中,Elasticsearch (ES) 被广泛应用于日志管理和分析,以提供高效、实时的运维监控和故障定位能力。以下是关于ES在华为电信软件运维中的具体应用和优化经验的详细说明。 **系统架构概述** ES...

    elasticsearch-2.0.0

    3. **新特性**:引入了新的特性如 `doc_values` 的默认开启,这使得字段值以倒排索引的形式存储,增强了聚合性能。同时,新增了 `Ingest Node` 功能,允许在数据被索引前进行预处理。 4. **API 变化**:为了保持 ...

    ElasticSearch 7.0 版本

    - **类型移除**:在7.0版本中,Elasticsearch移除了类型(type)的概念,每个索引只包含一种类型,即 `_doc`,简化了数据模型,提高了索引管理和查询的效率。 - **字段别名**:新增了字段别名功能,允许用户为字段...

    Elasticsearch.docx

    此外,Elasticsearch全家桶中的Kibana用于数据可视化,Elasticsearch负责数据存储和检索,Logstash用于数据收集、过滤和转换,而Beats系列工具(如Filebeat、Metricbeat等)则是更轻量级的数据收集解决方案。...

    ES HTTP操作

    在这个例子中,“elasticsearch”和“san francisco”将在“name”字段中按AND运算符进行匹配。 #### 十一、为索引添加字段及字段类型 **API:** `PUT http://localhost:9200/get-together/new-events/_mapping` ...

    Python-ElasticSearch搜索查询的讲解

    Elasticsearch作为一个强大的分布式搜索和分析引擎,被广泛应用于各类应用场景中,例如日志数据分析、实时应用程序监控以及网站搜索等。其核心特性在于能够处理大量的数据并提供快速的搜索响应。本文将深入探讨如何...

    分布式存储+Elasticsearch+数据存储技术+分布式缓存避坑

    例如,对于频繁用于聚合查询的字段,应考虑标记为 `doc_values`,这样可以在不加载整个文档的情况下执行聚合操作,从而显著提升查询速度。 #### 二、索引管理和文档处理 - **避免创建过多小索引**:大量小索引会...

    Mastering ElasticSearch 2nd Edition

    Elasticsearch中的索引和查询过程需要考虑数据的分析,包括分词(Tokenization)、规范化(Norms)、词向量(Term Vectors)和文档值(Doc Values)等概念。分词过程将文本分割为单独的单词或标记,规范化处理索引中...

    Jakes - 基于ES的音乐搜索引擎

    - **使用 doc_values**:对于排序和聚合操作的字段,使用 doc_values 可显著提升效率。 - **灵活分词策略**:根据不同查询需求应用合适的分词策略。 - **批量索引**:采用生产者消费者模型批量索引数据,提高索引...

    Mastering ElasticSearch 5.0

    - **文档值(Doc Values)**:提供了一种高效存储和检索数值字段的方法,支持快速聚合查询。 **2. ElasticSearch概述** - **关键概念**:集群(Cluster)、节点(Node)、索引(Index)、类型(Type)、文档...

    一站式掌握elastic search基础与实战视频资源-百度云链接

    07-3 -sorting-doc-values-fielddata.avi 07-4 -分页与遍历-fromsize.avi 07-5 分页与遍历.avi 07-6 分页与遍历-search_after.avi 07-7 文档说明.mp4.avi 08-1 -聚合分析简介.avi 08-2 -metric聚合分析.avi 08-3 -...

    09、商城业务1

    商品Mapping分析是确保商品在搜索引擎(如Elasticsearch, ES)中有效存储和检索的基础。 1. 商品 Mapping分析: - 商品上架时,需要决定在ES中存储SKU还是SPU。SKU(Stock Keeping Unit)是具有唯一标识的商品变体...

Global site tag (gtag.js) - Google Analytics