Elasticsearch的映射操作

本文详细介绍了Elasticsearch中的映射概念,包括映射的定义、创建映射示例、不同数据类型的使用以及如何进行条件查询。重点讲解了文本类型(text)与关键字类型(keyword)的区别,以及索引设置对查询的影响。
摘要由CSDN通过智能技术生成

本文来记录下Elasticsearch的映射操作


映射的概述

Elasticsearch与mysql数据库对比

在这里插入图片描述

映射的概述

  • 有了索引库,等于有了数据库中的 database。
  • 索引库(index)中的映射,类似于数据库(database)中的表结构(table)。
  • 创建数据库表需要设置字段名称,类型,长度,约束等;索引库也一样,需要知道这个类型下有哪些字段,每个字段有哪些约束信息,这就叫做映射(mapping)。

创建映射的示例

创建索引

在 apifox 中,向 ES 服务器发 PUT 请求 :http://127.0.0.1:9200/student

在这里插入图片描述

请求后,服务器返回响应

在这里插入图片描述


创建映射

在 apifox 中,向 ES 服务器发 PUT 请求 :http://127.0.0.1:9200/student/ _mapping,请求体内容为:

在这里插入图片描述

请求后,服务器返回响应

在这里插入图片描述


映射属性说明

映射属性说明列表

属 性解 释
type类型,Elasticsearch 中支持的数据类型非常丰富,说几个关键的:
String 类型,分两种(text:可分词;keyword:不可分词,数据会作为完整字段进行匹配)
Numerical:数值类型,分两类(基本数据类型:long、integer、short、byte、double、float、half_float;浮点数的高精度类型:scaled_float)
Date:日期类型
Array:数组类型
Object:对象
index 是否索引,默认为 true,也就是说你不进行任何配置,所有字段都会被索引。
true:字段会被索引,则可以用来进行搜索
false:字段不会被索引,不能用来搜索
是否将数据进行独立存储,默认为 false
原始的文本会存储在_source 里面,默认情况下其他提取出来的字段都不是独立存储 的,是从_source 里面提取出来的。当然你也可以独立的存储某个字段,只要设置 "store": true 即可,获取独立存储的字段要比从_source 中解析快得多,但是也会占用 更多的空间,所以要根据实际业务需求来设置。
analyzer 分词器,这里的 ik_max_word 即使用 ik 分词器

查看创建的映射

在 apifox 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/ _mapping

在这里插入图片描述

请求后,服务器返回响应

在这里插入图片描述


创建文档

在 apifox 中,向 ES 服务器发 PUT 请求 :http://127.0.0.1:9200/student/_doc/1,请求体内容为:

在这里插入图片描述

请求后,服务器返回响应

在这里插入图片描述


name属性条件查询文档示例

在 apifox 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search,请求体内容为:

在这里插入图片描述

请求后,服务器返回响应

在这里插入图片描述由上图输出结果可知:通过name=“王”,即可查出结果数据,说明创建映射时name属性设置的type值为text,具有分词效果。


sex属性条件查询文档示例

在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search,请求体内容为:

在这里插入图片描述

请求后,服务器返回响应

在这里插入图片描述由上图输出结果可知:通过sex=“男”,查出结果数据为空,说明创建映射时sex属性设置的type值为keyword,不具备分词效果。


age属性条件查询文档示例

在 apifox 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search,请求体内容为:

在这里插入图片描述

请求后,服务器返回响应

在这里插入图片描述

由上图输出结果可知:通过age=“30”,查出结果报错,说明创建映射时age属性设置的index值为false,字段不会被索引,不能用来搜索。


本文小结

本文记录了一些Elasticsearch的映射操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值