当前位置: 首页 > news >正文

Elasticsearch使用mapping映射定义以及基本的数据类型

1、说明

Elasticsearch的映射相当于数据库的数据字典,它定义了每个字段的名称和能够保存的数据类型,并且内置了20多种字段类型用于支持多种多样的结构化数据,这里仅介绍几种常用的字段类型,如需要了解全部的类型,请参考官方文档的有关介绍。

2、Elasticsearch 映射类型

Elasticsearch 类型说明
keyword它用于保存不经过分析、处理的原始文本
texttext 这表示用于处理的原始文本,可用于分词
integer这是一个整型(32位),例如 1、2、3
long这是一个长整型(64位)
float这是一个浮点数(32位),例如 1.2 或 4.5
double这是一个 double 类型浮点数(64位)
boolean这是一个布尔值:true 或 false
date表示时间
location表示经纬度
list和json类型用{}括起来的是json数据类型,用[]是数组类型
binary用来存储二进制文件,用来保存图片和文件

3、案例介绍

3.1 文本类型text和keyword

text存储会把切分后的文本保存到索引中,如果没有分词一个个字的保存。
keyword 进行统计分析和精准搜索

  PUT keyword-test{"mappings": {"properties": {"name": {"type": "text"}}}
}
 PUT keyword-test{"mappings": {"properties": {"name": {"type": "keyword"}}}
}

3.2 时间类型以及数值类型、布尔类型

时间类型,这个字段设置可以接收两种日期格式,其中epoch_millis代表时间戳的毫秒数。注意这里都是UTC时间格式,时间有时区的问题

PUT sougoulog-date
{"mappings": {"properties": {"visittime": {"type": "date","format": "yyyy-MM-dd HH:mm:ss ||epoch_millis"}}}
}

数值类型

PUT obj-test
{"mappings": {"properties": {"manager": {"properties": {"age":  { "type": "integer" }}}}}
}

布尔类型

PUT test-2
{"mappings": {"properties": {"sex": {"type": "boolean"}}}
}

3.3 json类型和数组类型

PUT obj-test
{"mappings": {"properties": {"region": {"type": "keyword"},"manager": {"properties": {"age":  { "type": "integer" },"name": {"properties": {"first": { "type": "text" },"last":  { "type": "text" }}}}}}}}
PUT shopping/_doc/1
{"tags":  [ "elastic", "search" ],"lists": [{"name": "mylist","description": "language list"},{"name": "testlist","description": "testlist"}]
}

3.4经纬度类型和二进制类型

PUT geo-1
{"mappings": {"properties": {"location": {"type": "geo_point"}}}
}
PUT binary-test
{"mappings": {"properties": {"pic": {"type": "binary"}}}
}

4、动态映射

看下面的例子就清楚了,如果我们添加明显有特征的数据类型,就会自动变成下面的数据类型

PUT number-test
{"mappings": {"numeric_detection": true}
}
PUT number-test/_doc/1
{"price": "2.5","amount":"2"
}GET number-test/_mapping{"number-test" : {"mappings" : {"numeric_detection" : true,"properties" : {"amount" : {"type" : "long"},"price" : {"type" : "float"}}}}
}
http://www.lryc.cn/news/185698.html

相关文章:

  • 【unity】制作一个角色的初始状态(左右跳二段跳)【2D横板动作游戏】
  • 不死马的利用与克制(基于条件竞争)及变种不死马
  • 计算机竞赛 车道线检测(自动驾驶 机器视觉)
  • Java代理简介
  • rust元组
  • HTTPS工作过程,国家为什么让http为什么要换成https,Tomcat在MAC M1电脑如何安装,Tomcat的详细介绍
  • 第十课 贪心
  • 5分钟理解什么是卷积的特征提取
  • Legion Y9000X IRH8 2023款(82Y3)原装出厂OEM预装Windows11系统
  • 【Acwing1010】拦截导弹(LIS+贪心)题解
  • DevicData-D-XXXXXXXX勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • 从入门到精通,30天带你学会C++【第七天:for循环和while循环以及数组的学习】(学不会你找我)
  • Python 编程基础 | 第五章-类与对象 | 5.2、数据成员
  • PHP 个人愿望众筹网站系统mysql数据库web结构apache计算机软件工程网页wamp
  • JS--判断空值(null、undefined、NaN、false、空字符串等)
  • ChatGPT 背后包含了哪些技术?
  • Vue Router(二)
  • ELK整合springboot(第二课)
  • 运维常见的22个故障排查和10个问题解决技巧大汇总!
  • 解决 TensorFlow 2.x 中的 “AttributeError: module ‘tensorflow‘ has no attribute ‘placeholder‘“ 错误
  • 新风机注意事项有哪些?
  • GitHub基础
  • 读书笔记--未来简史关键金句和阅读感悟
  • 【Vue2.0源码学习】生命周期篇-销毁阶段(destroy)
  • 代理IP与Socks5代理在多领域的卓越应用
  • kafka怎么实现零拷贝(Zero-Copy)的?
  • Hive【Hive(四)函数-单行函数】
  • C语言学生成绩录入系统
  • 操作系统对内存的管理:分配与回收,虚拟内存,内存容量的扩充,内存保护,补充(链接方式、装入方式)
  • [开源]基于Vue的拖拽式数据报表设计器,为简化开发提高效率而生