Elasticsearch 核心:Mapping 映射常见数据类型大全
Elasticsearch 核心Mapping 映射常见数据类型大全一、前言二、Mapping 是什么一句话三、Elasticsearch Mapping 常见数据类型核心分类1. 字符串类型最常用2. 数字类型3. 日期类型4. 布尔类型5. 复杂类型对象、数组6. 特殊类型IP、地理、经纬度等四、Mapping 常见数据类型详细说明重点1. 字符串类型2 种(1) text(2) keyword2. 数字类型8 种常用 5 种(1) integer(2) long(3) float(4) double(5) scaled_float3. 日期类型date4. 布尔类型boolean5. 复杂类型(1) object(2) nested6. 特殊类型高频(1) ip(2) geo_point(3) binary(4) range五、Mapping 常见数据类型一览表收藏版六、标准 Mapping 示例包含所有常见类型七、最常用类型选择口诀超好记八、总结The Begin点点关注收藏不迷路一、前言在 Elasticsearch 中Mapping就是索引的结构定义相当于 MySQL 的表结构。而数据类型则是 Mapping 里最核心的部分直接决定能不能搜索能不能聚合能不能排序查询性能好不好会不会踩坑很多新手因为选错数据类型导致查询不到、聚合失败、排序异常、性能爆炸。本文把ES Mapping 最常见、最常用、生产必用的数据类型全部整理出来分类清晰、带说明、带使用场景一看就懂、一用就对二、Mapping 是什么一句话Mapping 索引的结构定义它告诉 ES每个字段叫什么、是什么类型、要不要分词、要不要索引、能不能聚合。三、Elasticsearch Mapping 常见数据类型核心分类我把 ES 常见类型分为6 大类覆盖 99% 业务场景1. 字符串类型最常用2. 数字类型3. 日期类型4. 布尔类型5. 复杂类型对象、数组6. 特殊类型IP、地理、经纬度等四、Mapping 常见数据类型详细说明重点1. 字符串类型2 种(1) text全文本类型会分词支持全文检索不支持排序、聚合适用文章内容、描述、评论、标题、长文本(2) keyword精确匹配类型不分词支持精确查询、排序、聚合、过滤适用ID、手机号、状态、枚举、标签、邮箱2. 数字类型8 种常用 5 种(1) integer整数最常用适用用户ID、数量、年龄、状态码(2) long长整型适用超大ID、订单号、金额整数(3) float单精度小数(4) double双精度小数适用经纬度、长度、高度(5) scaled_float带缩放因子的小数推荐存金额适用价格、余额、优惠金额3. 日期类型date时间类型支持yyyy-MM-dd、yyyy-MM-dd HH:mm:ss、时间戳适用创建时间、更新时间、下单时间4. 布尔类型boolean只有true/false适用是否删除、是否生效、是否VIP5. 复杂类型(1) object对象类型JSON嵌套适用用户信息、详情信息(2) nested嵌套数组对象解决数组对象查询错乱问题适用评论列表、标签列表、多商品列表6. 特殊类型高频(1) ip存储 IP 地址支持网段查询(2) geo_point地理坐标经纬度适用地图、附近的人、地理位置(3) binary二进制数据(4) range范围类型日期范围、数字范围五、Mapping 常见数据类型一览表收藏版分类数据类型说明适用场景字符串text分词、全文搜索内容、标题、描述keyword不分词、精确匹配、聚合、排序ID、手机号、状态、枚举数字integer整数年龄、数量、状态long长整数订单ID、超大数值double小数经纬度、数值scaled_float金额专用价格、余额日期date时间创建时间、更新时间布尔booleantrue/false是否删除、是否生效复杂object嵌套对象用户信息、详情nested数组对象评论、列表、多值对象特殊ipIP地址IP、网段geo_point经纬度地图、地理位置六、标准 Mapping 示例包含所有常见类型PUT/user_index{mappings:{properties:{name:{type:text,fields:{keyword:{type:keyword}}},age:{type:integer},phone:{type:keyword},price:{type:scaled_float,scaling_factor:100},create_time:{type:date},is_vip:{type:boolean},ip:{type:ip},location:{type:geo_point},detail:{type:object},comments:{type:nested}}}}七、最常用类型选择口诀超好记长文本搜索用text精确匹配用keyword整数用integer超大数用long金额用scaled_float时间用date真假用boolean对象用object对象数组用nestedIP 用ip经纬度用geo_point八、总结Elasticsearch Mapping 常见数据类型一共6 大类字符串类型text、keyword数字类型integer、long、double、scaled_float日期类型date布尔类型boolean复杂类型object、nested特殊类型ip、geo_point、range只要掌握这些99% 的业务场景都能轻松搞定The End点点关注收藏不迷路