Elasticsearch 和 MySQL 的字段类型在很多方面具有相似之处。这些相似之处主要反映在它们表示基本数据类型的能力上。下面是 Elasticsearch 和 MySQL 中一些相似的字段类型:

  1. 文本:

    • Elasticsearch:textkeyword
    • MySQL:VARCHAR, CHAR, TEXT, TINYTEXT, MEDIUMTEXT, LONGTEXT

    在 Elasticsearch 中,text 类型通常用于全文搜索,而 keyword 类型用于精确值的字符串。在 MySQL 中,VARCHARCHAR 类型用于存储可变长度和固定长度的字符串,而 TEXT 类型及其变体用于存储较大的字符串。

  2. 数值:

    • Elasticsearch:integerlongshortbytefloatdoublehalf_floatscaled_float
    • MySQL:INT, BIGINT, SMALLINT, TINYINT, MEDIUMINT, FLOAT, DOUBLE, DECIMAL

    Elasticsearch 和 MySQL 都支持多种整数和浮点数类型。这些类型在两者之间具有相似的数据表示范围和精度。

  3. 日期:

    • Elasticsearch:date
    • MySQL:DATE, DATETIME, TIMESTAMP

    Elasticsearch 和 MySQL 都支持日期类型,用于表示日期和时间。它们支持不同的日期格式,可以进行日期和时间的查询和计算。

  4. 布尔:

    • Elasticsearch:boolean
    • MySQL:BOOL, BOOLEAN

    Elasticsearch 和 MySQL 都支持布尔类型,用于表示 truefalse

尽管 Elasticsearch 和 MySQL 在这些基本数据类型上具有相似之处,但它们在处理和查询数据的方式上有很大不同。Elasticsearch 是一个面向全文搜索和实时分析的分布式搜索引擎,而 MySQL 是一个关系型数据库管理系统,主要用于存储结构化数据。因此,它们在数据建模、索引、查询和性能优化等方面具有不同的特点和优势。

以下是一个 Elasticsearch 和 MySQL 示例,展示了如何使用两者分别存储和查询一组书籍数据。

假设我们有以下书籍数据:

  1. 书名: “活着”, 作者: “余华”, 出版日期: “1992-01-01”, 类别: “小说”
  2. 书名: “百年孤独”, 作者: “加西亚·马尔克斯”, 出版日期: “1967-05-30”, 类别: “小说”
  3. 书名: “人类简史”, 作者: “尤瓦尔·赫拉利”, 出版日期: “2011-01-01”, 类别: “历史”

在 Elasticsearch 中,我们可以执行以下操作:

  1. 创建一个名为 books 的索引:
curl -X PUT "localhost:9200/books?pretty" -H 'Content-Type: application/json' -d'
{"mappings": {"properties": {"title": { "type": "text" },"author": { "type": "keyword" },"publish_date": { "type": "date" },"category": { "type": "keyword" }}}
}'
  1. books 索引中添加书籍文档:
# 添加《活着》
curl -X POST "localhost:9200/books/_doc?pretty" -H 'Content-Type: application/json' -d'
{"title": "活着","author": "余华","publish_date": "1992-01-01","category": "小说"
}'# 添加《百年孤独》
curl -X POST "localhost:9200/books/_doc?pretty" -H 'Content-Type: application/json' -d'
{"title": "百年孤独","author": "加西亚·马尔克斯","publish_date": "1967-05-30","category": "小说"
}'# 添加《人类简史》
curl -X POST "localhost:9200/books/_doc?pretty" -H 'Content-Type: application/json' -d'
{"title": "人类简史","author": "尤瓦尔·赫拉利","publish_date": "2011-01-01","category": "历史"
}'
  1. 查询类别为 “小说” 的书籍:
curl -X GET "localhost:9200/books/_search?pretty" -H 'Content-Type: application/json' -d'
{"query": {"term": {"category": "小说"}}
}'

在 MySQL 中,我们可以执行以下操作:

  1. 创建一个名为 books 的表:
CREATE TABLE books (id INT AUTO_INCREMENT PRIMARY KEY,title VARCHAR(255),author VARCHAR(255),publish_date DATE,category VARCHAR(255)
);
  1. books 表中插入数据:
INSERT INTO books (title, author, publish_date, category)
VALUES('活着', '余华', '1992-01-01', '小说'),
('百年孤独', '加西亚·马尔克斯', '1967-05-30', '小说'),
('人类简史', '尤瓦尔·赫拉利', '2011-01-01', '历史');
  1. 查询类别为 “小说” 的书籍:
SELECT * FROM books WHERE category = '小说';

这个例子展示了如何在 Elasticsearch 和 MySQL 中存储和查询相同的书籍数据。虽然它们的字段类型和查询语法有所不同,但都可以满足基本的数据存储和检索需求。需要注意的是,Elasticsearch 更擅长处理全文搜索和实时分析,而 MySQL 是关系型数据库,更适合存储结构化数据和处理复杂的关系查询。

3分钟快速了解mysql和es中字段类型相似之处相关推荐

  1. mysql 修改字段类型为字符串_MySQL中字段类型与合理的选择字段类型

    原标题:MySQL中字段类型与合理的选择字段类型 字段类型 数值 MySQL 的数值数据类型可以大致划分为两个类别,一个是 整数,另一个是 浮点数或小数. 许多不同的子类型对这些类别中的每一个都是可用 ...

  2. MySQL中字段类型为longtext的值导出后显示二进制串

    MySQL中字段类型为 longtext 的字段值保存的是Blob (Binary large objects),所以在导出sql或者将sql查询导出为其他格式的数据时,需要提前将字段类型转换一下,转 ...

  3. Mysql中字段类型之时间戳大坑

    一 .环境说明: 在目前项目中,有这样的一张表,用来记录会议的相关信息,例如:会议的内容.会议的参会人员.会议的地点.会议的状态(会议是否已结束.会议是否被撤销).会议的开始时间以及该条信息的创建时间 ...

  4. Elasticsearch中字段类型(Field Type)详解

    ElasticSearch 7.7 字段类型(Field datatype)详解 字符串, object, 数值, 日期, 数组, 0x00 字符串: text, keyword 5.0以后,stri ...

  5. 数据库中字段类型对应的C#中的数据类型

    数据库中字段类型对应C#中的数据类型: 数据库                 C#程序 int int32 text string bigint int64 binary System.Byte[] ...

  6. Access中字段类型及修改字段类型的SQL语句

    Access中字段类型及修改字段类型的SQL语句 Access中的数据类型 Access中有10中数据类型:文本.备注.数值.日期/时间.货币.自动编号.是/否.OLE对象.超级链接.查询向导. 1. ...

  7. java中时间入数据库格式转换_数据库中字段类型为datetime,转换成java中的Date类型...

    数据类型对照 点击打开链接 JDBC: PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuer ...

  8. 使用MyBatis Plus 3.2.0版本插件代码生成器生成实体类后,对于数据库中字段类型datetime的字段会转变为LocalDateTime类型

    问题描述: 使用MyBatis Plus 3.2.0版本插件代码生成器生成实体类后,对于数据库中字段类型datetime的字段会转变为LocalDateTime类型,IDEA提示报错"Usa ...

  9. mysql root用户可以同时几个人连接_重学MySQL系列(四):10分钟快速掌握MySQL用户与权限管理

    在这篇文章中,我们来聊聊怎么管理MySQL的用户及如何为不同用户分配不同的管理权限,其实,在日常使用MySQL的过程中,这部分的工作是由DBA(数据管理员)来完成的. 而我们作为一般的开发人员,只要拿 ...

最新文章

  1. 2021年你不能错过的DevOps趋势
  2. ctags,cscope,nerdtree,tmux 笔记
  3. c++ 数组指针形参,并返回数据
  4. ADSL获取的IP地址与网关相同,却能上网的原理
  5. JavaIO4--ObjectInputStream和ObjectOutputStream
  6. 一些著名的软件都用什么语言编写?
  7. 怎么让员工服从管理_职场 | 在职场中,遇到不服从管理的员工,该怎么办呢?...
  8. 【OpenGL4.0】GLSL-Flat Shading平面着色
  9. Spark常用的算子以及Scala函数总结
  10. 官宣,港珠澳大桥终于来了
  11. C++中实现调用外部程序的方法
  12. MySQL 排序规则
  13. kanzi学习第二天-----创建一个状态机
  14. Java自动化测试系列[v1.0.0][TestNG测试开发环境配置]
  15. Centos7命令行方式安装DM
  16. 学渣的刷题之旅 leetcode刷题 26. 删除排序数组中的重复项
  17. Superpixel_Segmentation_With_Fully_Convolutional_Networks ---CVPR_2020_paper(翻译)
  18. 如何为窗体应用程序显示控制台
  19. 洛谷 P2216 [HAOI2007] 理想的正方形
  20. Unity 之 纹理类型导入设置和压缩格式介绍

热门文章

  1. SpringBoot --- 整合Ldap
  2. android开发笔记之Json解析
  3. xctf攻防世界 MISC高手进阶区 Recover-Deleted-File
  4. linux创建子进程通信,Linux进程间通信的socketpair()函数
  5. 脚本为王 - 辅助功能
  6. ubuntu 安装 imagej
  7. org.dom4j.DocumentException
  8. 电脑开机为什么要按F1,怎么弄掉
  9. assertEquals 方法
  10. linux那个适合于旧电脑,最好的轻量级Linux发行版旧计算机 | MOS86