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

ES支持哪些数据类型,和MySQL之间的映射关系是怎么样的?

Elasticsearch(简称 ES)是一个分布式搜索和分析引擎,支持丰富的数据类型来适应不同场景。MySQL 是一个关系型数据库,两者在数据类型上存在差异,但可以通过映射实现数据同步或集成。下面我将逐步解释 ES 支持的数据类型,然后详细说明与 MySQL 的常见映射关系。回答基于 ES 7.x/8.x 和 MySQL 5.7/8.0 版本

1. Elasticsearch 支持的数据类型
  1. Text:用于存储全文文本数据,如文章或者书籍内容,支持全文搜索分析、分词

  2. Keyword:用于存储文本值,常用于索引结构化内容,如邮件地址或需要精准查询匹配的内容
  3. Date:存储日期或者时间,格式如 yyyy-MM-dd HH:mm:ss
  4. Long,Integer,Short,Byte,Double,Float:数值类型
  5. Boolean:存储 true 或 false
  6. Binary:存储二进制数据,如 Base64 编码。
  7. Object:嵌套 JSON 对象。
  8. Nested:用于数组中的对象,保持独立性
2. MySQL 常见数据类型

MySQL 作为关系型数据库,数据类型更结构化,常见包括:

  • 整数:INTBIGINTSMALLINTTINYINT
  • 浮点数:FLOATDOUBLEDECIMAL(精确小数)。
  • 字符串:VARCHAR(变长字符串)、CHAR(定长字符串)、TEXT(长文本)。
  • 日期时间:DATEDATETIMETIMESTAMP
  • 布尔:BOOLEAN(或 TINYINT(1) 模拟)。
  • 二进制:BLOBBINARY
3. ES 与 MySQL 的数据类型映射关系
Mysql类型Elasticsearch 类型说明
VARCHARtext,keyword根据是否需要全文检索或精准检索,选择使用text或者keyword
CHARkeyword用于存储较短,不长变化的字段
BLOB/TEXTtext大文本块使用text类型,支持全文检索
INT,BINTlong多数整数类型映射为long,以支持更大的数值
TINTbyte较小的整数可以映射为byte
DECIMAL,FLOAT,DOUBLEdouble,float根据精准度选择double和float
DATE,DATETIME,TIMESTAMPdate所有的时间类型都可以映射为date
TININT(1)boolean

4.拓展

text和keyword的区别?

text类型被设计用于全文搜索,意味着文本被存储为text类型时,ES会对其进行分词,把文本分解为单独的词语或短语,便于搜索引擎进行全文检索。

适用于存储需要进行全文检索的内容,产品描述,任务描述等

keyword类型是精准值匹配,不进行分词处理,作为整体存储,适用于计数、求和、过滤和排序操作。

http://www.lryc.cn/news/625712.html

相关文章:

  • 点大餐饮独立版系统源码v1.0.3+uniapp前端+搭建教程
  • nuxt使用vue-echarts第三方插件报错document is not defined
  • 亚远景-ISO/PAS 8800认证:从框架到实践的合规路径与挑战
  • 2.Kotlin 集合 List 所有方法
  • Js逆向案例 Scrape Spa2(Webpack自吐)
  • Ansible 大项目管理实践笔记:并行任务、角色管理与负载均衡架构部署
  • 基于Python的宠物服务管理系统 Python+Django+Vue.js
  • 当机器猫遇上具身智能:一款能读懂宠物心思的AI守护者
  • XML 序列化与操作详解笔记
  • Gemini CLI 自定义主题配置
  • 块存储 对象存储 文件存储的区别与联系
  • es9.0.1语义检索简单示例
  • RNN(循环神经网络)和Transformer是处理自然语言处理(NLP)任务区别
  • 《用Proxy解构前端壁垒:跨框架状态共享库的从零到优之路》
  • 高校数字化转型实战:破解数据孤岛、构建智能指标体系与AI落地路径
  • C++代码解释:实现一个 mystring 类,用于表示字符串,实现构造函数,默认构造长度为 10 的空间,提供打印字符串,获取空间大小,修改内容的成员函数
  • InnoDB为什么使用B+树实现索引?
  • Word——正确调整文字与编号的距离
  • 4.Kotlin 集合 Map 所有方法
  • Linux系统安全补丁管理与自动化部署研究与实现(LW+源码+讲解+部署)
  • Ubuntu 20 各种网卡配置IP的方法
  • pnpm 和 npm 差异
  • MySQL 三大日志:redo log、undo log、binlog 详解
  • Git+Jenkins实战(一)
  • 软件测试核心概念拆解:需求、开发模型与测试模型全解析
  • JVM调优实战指南:从原理到落地的全面优化方案
  • 安装DDNS-go
  • FlexSim-线平衡优化仿真
  • Qt元对象
  • Qt消息队列