`
qindongliang1922
  • 浏览: 2170921 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117072
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125419
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59486
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71006
社区版块
存档分类
最新评论

Elasticsearch的Mapping之元数据类型

    博客分类:
  • ELK
阅读更多

在es中,mapping的存在类似数据库的表结构定义或者solr里面的schemal文件,它里面定义了每个添加的doc的处理方式。

mapping type定义了不同的逻辑上组隔离,这一点类似于数据库的各个表,例如用户表,订单表,商品表,在es里面
每个表都有自己的一个mapping type,每个mapping type包含:

元数据字段:
(1),身份元数据
_index : 此doc例如于那个index名 , 自动被索引,可被查询,聚合,排序使用,或者脚本里访问
_type: 此doc的mapping type名, 自动被索引,可被查询,聚合,排序使用,或者脚本里访问
_id : doc的id,建索引时候传入 ,不被索引, 可通过_uid被查询,脚本里使用,不能参与聚合或排序
_uid: 由_type和_id字段组成,自动被索引 ,可被查询,聚合,排序使用,或者脚本里访问

(2),文档元数据
_source : 一个doc的原生的json数据,不被索引,用于获取提取字段值 ,启动此字段,索引体积会变大,如果既想使用此字段
又想兼顾索引体积,可以开启索引压缩
_size: 整个_source字段的字节数大小

(3),索引时元数据
_all: 自动组合所有的字段值,以空格分割,可以指定分器词索引,但是整个值不被存储,所以此字段仅仅能被搜索,不能被获取值
_field_names:索引了每个字段的名字可以包含null值,可以通过exists查询或missing查询方法来校验特定的字段
_timestamp:可以手工指定时间戳值,也可以自动生成使用now()函数,除此之外还可以设置日期的格式化,忽略确实等功能
_ttl:对于一些会话数据或者验证码失效时间,一般来说是有生命周期的,在es中可以很方便的通过这个ttl来设置存活时间,比如1小时,或者10分钟,在超时过后,这个doc会被自动删除,这种方式并不适合按周或按天删除历史数据,如果是这种需求,可考虑使用索引级别的管理方式。

(4),路由元数据
_parent:在同一个索引中,可以通过_parent字段来给两个不同mapping type的数据建立父子关系,在查询时可以通过has_child,
has_parent等查询,来聚合join数据,需要注意的是,父子type必须不能是一样的,否则会识别失败!
_routing: 一个doc可以被路由到指定的shard上,通过下面的规则:
shard_num = hash(_routing) % num_primary_shards
默认情况下,会使用doc的_id字段来参与路由规则,如果此doc有父子关系,则会以父亲的_id作为路由规则,以确保父子数据
必须处于同一个shard上,以提高join效率。

当然我们也可以根据规则自定义路由规则,必须按商品类目为路由规则,手机类目,玩具类目,汽车类目都会被路由到指定的shard上
如果你使用自己的路由规则,一定要确保在查询时加上路由参数,否则你搜索的结果可能会出现问题,为了提高安全,可以设置路由
参数的required=true,如果你查询时不设置路由,将会给你一个搜索无效提示,除此之外如果明确一个数据,可能会出现指定的路由上
我们还可以在查询时加上路由参数,以确保减少搜索时的扫描范围,从而可以大幅度的提高的查询性能。最后一点需要注意的是如果指定了使用自己的路由规则,如果两个文档_id参数一样,但是路由规则值不一样,有可能造成这两条数据被分发到不同的shard,所以在使用自己的路由规则时
注意_id参数的唯一性。

(5)其他的元数据字段
_meta:每个mapping type可以有不同的元数据类型,我们可以存储自己定义认为的元数据中,此字段支持查询和更新

官网文档:
https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-fields.html#_document_source_meta_fields

1
1
分享到:
评论

相关推荐

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

    在现代数据处理和分析领域,Elasticsearch(ES)扮演着至关重要的角色,它是一个开源的、分布式搜索引擎,适用于实时数据分析和全文检索。随着版本的不断更新,Elasticsearch提供了更丰富的功能和优化,5.2.0版本便...

    ElasticSearch官方测试数据

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

    arcgis-elasticSearch-es-矢量数据导入插件-数据建模-mapping-indexsetting-字段映射

    arcgis elasticSearch es 矢量数据导入插件 数据建模 mapping indexsetting 字段映射 索引建模支持geoshape、shape,text索引支持keyword/ngram/edgeNgram/ikSmart,快速导入,兼容multipolygon,带洞,多面,使用时...

    ElasticSearch数据导出

    ElasticSearch数据导出 elasticsearch单文档数据导出 支持自定义查询 导出数据Json文件

    Elasticsearch数据导出工具

    Elasticsearch数据导出工具是一种高效实用的解决方案,它允许用户方便地从Elasticsearch(ES)集群中抽取数据,并将其导出到不同的目标,如MySQL数据库或本地文件系统。这款工具尤其适用于需要进行数据迁移、备份或...

    elasticsearch数据结构设计文档

    Elasticsearch(以下简称 ES)是一种基于 Lucene 的开源搜索引擎,广泛应用于大数据时代的搜索、日志分析和数据集成等领域。下面是基于给定的文件信息,生成的相关知识点。 一、ES 索引结构设计 ES 索引结构设计是...

    Elasticsearch官方提供数据案例account.json

    **Elasticsearch官方提供数据案例account.json** Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎,它允许用户快速地存储、搜索和分析大量数据。在这个案例中,"account.json"是Elasticsearch官方提供的一...

    elasticSearch测试数据

    Elasticsearch(ES)是一种基于Lucene的分布式、RESTful搜索和分析引擎,常用于实时大数据的检索和分析。在本场景中,我们有三个测试数据集,分别代表不同的应用场景和数据类型,它们是logstash-*,account,以及...

    ArcGIS桌面工具--矢量数据导入elasticsearch

    本文将深入探讨如何利用ArcGIS桌面工具将矢量数据(如.shp文件)导入到Elasticsearch(ES)中,以便进行高效的数据存储、检索和分析。 首先,ArcGIS桌面软件提供了丰富的地理数据处理功能,其中包括支持多种矢量...

    ElasticSearch 官方示例测试数据

    ES 官方示例数据

    (狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战)

    好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个开源的高拓展的分布式全文搜索引擎它可以近乎实时的存储、检索数据;本身拓展性很好,可以拓展到上百台服务器,处理PB级别的数据。es也是用Java开发并使用...

    elasticsearch elasticsearch-6.2.2 elasticsearch-6.2.2.zip 下载

    它能够实时地存储、检索和分析海量的数据,并且支持多种数据类型。由于其出色的性能和丰富的功能,Elasticsearch被广泛应用于日志分析、网站搜索、推荐系统等多个领域。 ### Elasticsearch 6.2.2版本特点 Elastic...

    elasticsearch 8.11.3 windows安装包

    Elasticsearch 为所有类型的数据提供近乎实时的搜索和分析。无论您拥有结构化或非结构化文本、数字数据还是地理空间数据,Elasticsearch 都能以支持快速搜索的方式高效地存储和索引它。您可以超越简单的数据检索和...

    项目实战——钉钉报警校验ElasticSearch和Hive数据仓库内的数据质量(Java版本)

    因为你不知道将Hive的数据导入到了ElasticSearch后,数据量是否准确,所以需要钉钉报警校验ElasticSearch和Hive数据仓库内的数据质量,注意,这个项目打包后,最好另起一个进程调用,并且开始时间为文章1或者2最大...

    es-mapping-generator:基于自定义注释解根据Java实体模型生成elasticsearch的映射配置

    ElasticSearch映射生成器该工具允许在创建索引时为索引生成映射或设置。 使用注释描述定义的映射字段安装二进制文件部署在Maven Central上,您可以将工件导入到您的项目中: < dependency> < groupId>...

    基于.netcore搜索封装ElasticSearch.zip

    Elasticsearch.NET是Elastic官方提供的.NET低级别客户端,而Nest则是其高级别、类型安全的客户端,提供了一种更接近C#的对象模型来操作Elasticsearch。通过这两个库,开发者可以更加便捷地在.NET Core应用中使用...

    Elasticsearch2.4.4免安装下载

    4. **动态映射**: 当新类型的数据被索引时,Elasticsearch 可以自动创建映射(mapping),定义字段的数据类型,也可以手动配置。 5. **实时分析**: 数据一旦被索引,即可立即用于搜索和分析,无需等待批处理过程。 ...

    ES-HIVE数据互通

    - `es.resource` 指定了Elasticsearch中的索引名称和类型。 3. **显示创建表语句**:使用 `SHOW CREATE TABLE` 命令查看创建表的具体细节。 ```sql SHOW CREATE TABLE alsobuy; ``` 4. **插入数据与查询**:...

    arcgis-elasticSearch-es-矢量数据导入插件-数据建模-字段映射-mapping-indexsetting

    arcgis elasticSearch es 矢量数据导入插件 数据建模 mapping indexsetting 字段映射 索引建模支持geoshape、shape,text索引支持keyword/ngram/edgeNgram/ikSmart,快速导入,兼容multipolygon,带洞,多面,使用时...

    elastic search 7.6.2 查询

    ElasticSearch 7.6.2 查询 ElasticSearch 是一个基于 Lucene ...在 Elasticsearch 中,数组不需要专用的字段数据类型,默认情况下,任何字段都可以包含零个或多个值,但是,数组中的所有值都必须具有相同的数据类型。

Global site tag (gtag.js) - Google Analytics