如何进行Elasticsearch Mapping类型映射概述与元字段分析

发布时间:2021-11-17 15:35:44 作者:柒染
来源:亿速云 阅读:156

本篇文章给大家分享的是有关如何进行Elasticsearch Mapping类型映射概述与元字段分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

小编对ES类型映射机制进行详细解读。

Mapping概述

Mapping,映射,相当于关系型数据库创建语句,定义文档字段及其类型、索引与存储方式。通常会涉及如下方面:

 
映射类型

Elasticsearch支持meta-fields、fields or properties两种映射类型,将决定文档的索引方式。

映射类型,可以理解为以何种方式来定义索引中一个类型的字段集。

 
数据类型

每一个字段都会指定一个数据类型,数据类型通常如下:

后续章节会单独重点剖析elasticsearch所支持的数据类型。

 
映射保护机制

es提供如下参数来限制es的行为:

 
动态映射机制

与关系型数据库不同的是,一个type(对应关系型数据库的表)中的字段可以在使用过程中动态添加。具体的动态映射机制,将在后续文章中单独结束。

 
更新已有映射定义

Elasticsearch不支持直接修改已索引的已存在的字段映射,因为修改字段映射,意味着已索引的数据生效,可以使用别名机制来修改字段的名称,如果需要修改已存在字段的映射,建议重新创建一个索引,再使用reindex API迁移数据。

 
索引、type组织方式

索引在创建时,Elasticsearch7.x版本只支持一个映射类型,而7.x版本后将完成删除映射类型。5.x中一个索引包含多个type的情况再6.x版本将继续支持查询。7.0版本后,API将完成移除与多类型相关的API。

Elasticsearch7.x版本后为什么不继续对单一索引库提供多类型支持呢?

当初,为了方便理解es,通常与关系型数据库进行类比,例如es中的index相当于关系型数据库的database,而类型相当于关系型数据库中的table。其实这是一个错误的比喻。在关系型数据库中,表是相互独立的,一个表中的列名与另外一个表中的列名相同是没有关系的,但对于es的类型映射定义,情况并非如此。

在es单一索引中,不同映射类型(type)具有相同名称的字段在内部都是由同一个Lucence字段来存储,这也就意味着同一个索引内不同的类型,如果出现名字相同的字段,其数据类型也必须相同。更重要的是,存储在同一索引中具有很少或没有共同字段的不同类型(实体)会导致数据稀疏,大大降低Lucece高效压缩文档的能力,影响其检索性能。

基于上述各种原因,故es将在后续版本中不支持一个索引中定义多个类型。

 

meta-fields

每个文档都有与之关联的元数据,例如_index、mapping _type和_id元字段。

在创建映射类型时,可以定制其中一些元字段的行为。

 
identity meta-fields

表明文档身份的元字段。

 
document source meta-fields
 
indexing meta-fields
 1PUT tweets
2{
3  "mappings": {
4    "_doc": {
5      "_field_names": {
6        "enabled": false
7      }
8    }
9  }
10}                                                        }
  
routing meta-field
 
other meta-field
 1PUT my_index
2{
3  "mappings": {
4    "_doc": {
5      "_meta": { 
6        "class": "MyApp::User",
7        "version": {
8          "min": "1.0",
9          "max": "1.3"
10        }
11      }
12    }
13  }
14}                                                        }

以上就是如何进行Elasticsearch Mapping类型映射概述与元字段分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

推荐阅读:
  1. 一、Elasticsearch原理与基本使用
  2. Elasticsearch常用操作:映射篇

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mapping elasticsearch

上一篇:如何配置一个好用的Android模拟器

下一篇:jquery如何获取tr里面有几个td

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》