https://www.elastic.co/guide/cn/elasticsearch/guide/current/mapping.html
如果有两个不同的类型,每个类型都有同名的字段,但映射不同(例如:一个是字符串一个是数字),将会出现什么情况?
简单回答是,Elasticsearch 不会允许你定义这个映射。当你配置这个映射时,将会出现异常。
详细回答是,每个 Lucene 索引中的所有字段都包含一个单一的、扁平的模式。一个特定字段可以映射成 string 类型也可以是 number 类型,但是不能两者兼具。因为类型是 Elasticsearch 添加的 优于 Lucene 的额外机制(以元数据 _type 字段的形式),在 Elasticsearch 中的所有类型最终都共享相同的映射。
以 data 索引中两种类型的映射为例:

{"data": {"mappings": {"people": {"properties": {"name": {"type": "string",},"address": {"type": "string"}}},"transactions": {"properties": {"timestamp": {"type": "date","format": "strict_date_optional_time"},"message": {"type": "string"}}}}}
}

每个类型定义两个字段 (分别是 "name"/"address" 和 "timestamp"/"message" )。它们看起来是相互独立的,但在后台 Lucene 将创建一个映射,如:

{"data": {"mappings": {"_type": {"type": "string","index": "not_analyzed"},"name": {"type": "string"}"address": {"type": "string"}"timestamp": {"type": "long"}"message": {"type": "string"}}}
}

注: 这不是真实有效的映射语法,只是用于演示
对于整个索引,映射在本质上被 扁平化 成一个单一的、全局的模式。这就是为什么两个类型不能定义冲突的字段:当映射被扁平化时,Lucene 不知道如何去处理。

结论
技术上讲,多个类型可以在相同的索引中存在,只要它们的字段不冲突(要么因为字段是互为独占模式,要么因为它们共享相同的字段)。
重要的一点是: 类型可以很好的区分同一个集合中的不同细分。在不同的细分中数据的整体模式是相同的(或相似的)。
类型不适合 完全不同类型的数据 。如果两个类型的字段集是互不相同的,这就意味着索引中将有一半的数据是空的(字段将是 稀疏的 ),最终将导致性能问题。在这种情况下,最好是使用两个单独的索引。

在Elaticsearch 6.x版本中已经只允许一个索引下只有一个type,声明多个type已经标记为过期,但是仍可以使用。7.0之后的版本将完全移除
https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html

转载于:https://www.cnblogs.com/gavinYang/p/11200212.html

elasticsearch type类型创建时注意项目,最新的elasticsearch已经不建议一个索引下多个type...相关推荐

  1. 使用Vite创建Vue3+TS项目并整合Element Plus框架等一条龙服务

    记录一下使用Vite创建Vue3+TS项目以及整合Element Plus框架,还有Less.Pinia.Vue-router.monaco-editor等插件或组件. 一.使用Vite创建Vue3+ ...

  2. Idea创建Spring Boot项目超时失败的解决方案及Maven改SpringBoot

    前言 说起IntelliJ IDEA 可谓是作为一名开发者必须知道的神器了,便捷高效,但不知道是升级了新的Idea软件,还是网络不通畅缘故,笔者这两天老遇到一个创建超时的问题. 用 IDEA 创建 S ...

  3. 玩转type类型(牛逼克拉斯 )

    一.前言 一说起type()方法肯定有很多人都知道这不就是查看某个对象类型的嘛,其实不然,他还有更牛逼的应用------创建类 >>> type(1) <class 'int' ...

  4. 解决input[type=file]打开时慢、卡顿问题

    解决input[type=file]打开时慢.卡顿问题 参考文章: (1)解决input[type=file]打开时慢.卡顿问题 (2)https://www.cnblogs.com/zhouyang ...

  5. SAP UI5 应用开发教程之五十八 - 使用工厂方法在运行时动态创建不同类型的列表行项目控件试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  6. 修改 Android Studio 相关模板,以加快项目创建时构建速度,支持Mac,Windows,Linux...

    2019独角兽企业重金招聘Python工程师标准>>> 注: 本文主要在Mac中操作,Windows,Linux操作类似.默认创建Empty Activity项目 Android S ...

  7. C++ - RTTI(RunTime Type Information)运行时类型信息 详解

    RTTI, RunTime Type Information, 运行时类型信息, 是多态的主要组成部分,  通过运行时(runtime)确定使用的类型, 执行不同的函数,复用(reuse)接口. dy ...

  8. html file 隐藏,input type=file /浏览时只显示指定文件类型(html5新特性)

    type="file" />浏览时只显示指定文件类型 accept属性列表 1.accept="application/msexcel" 2.accept ...

  9. oracle有几种类型表空间,oracle 数据创建时如何指定表空间类型

    oracle建表时指定了表空间为何没起作用? oracle 12c /windows ,实验过程如下: 1.建第一个表空间data_tbs_01,数可以直接在创建语句后面追加"tablesp ...

最新文章

  1. 【OpenCV 4开发详解】轮廓外接多边形
  2. php webstorm,webstorm和phpstorm的区别
  3. PowerDesigner基本使用 - 创建逻辑数据模型
  4. 【译】10 years Blockchain. The Race is on: Blockchain vs. Tangle vs. Hashgraph
  5. java无忧网_零基础java入门课程 - 学途无忧网 - 做技术的王者 - Powered By EduSoho
  6. SAP 电商云 Spartacus UI 和 SmartEdit 本地测试环境
  7. junit单元测试断言_简而言之,JUnit:单元测试断言
  8. LeetCode MySQL 602. 好友申请 II :谁有最多的好友(union all)
  9. (pytorch-深度学习)语言模型-学习笔记
  10. idea 跳转到行数,Intellij IDEA 一些不为人知的技巧
  11. 记录自己的第一次实习
  12. vbm 分析_vbm8_r435 脑功能数据分析处理实用软件,基于SPM 来运行 matlab 238万源代码下载- www.pudn.com...
  13. bzoj 5394: [Ynoi2016]炸脖龙 数论+树状数组
  14. 如何对Hive Metastore进行权限控制
  15. vue 微信公众号获取定位经纬度 腾讯地图逆地址解析为具体地址
  16. 网页制作用html和sc,实验二:html的基本标签和javasc
  17. 用批处理命令打开控制面板选项
  18. Softmax回归及损失函数(李沐深度学习课程、自用)
  19. JavaScript实现输入数值判断是否为质数、合数的代码
  20. python怎么调字体_python怎么改字体

热门文章

  1. 在存储过程中构建动态SQL
  2. java 浮点型 除零_Java-非零整数除以10等于0.0浮点?
  3. 华为交换机静态路由配置案例_快速了解配置三层交换机策略路由配置
  4. 金蝶kis云触发器解决审核和反审核的问题
  5. java的简单算法题_[2]十道算法题【Java实现】
  6. 手机4g模块坏了怎么办_古交联通突然断网,手机没信号,不能接打电话该怎么办?...
  7. 小程序分享如何自定义封面?
  8. ionic3 前台时间戳转化成日期问题
  9. java 两个对象合并_Java 对象按照多个属性来合并。
  10. 基于php的医院管理,基于PHP的医院管理信息系统的设计与实现