首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch的Mapping之元数据类型

Elasticsearch的Mapping之元数据类型

作者头像
我是攻城师
发布2018-05-14 13:47:28
1.2K0
发布2018-05-14 13:47:28
举报
文章被收录于专栏:我是攻城师我是攻城师

在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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我是攻城师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档