ElasticSearch学习(二)数据类型

本文详细介绍了Elasticsearch中的各种数据类型,包括字符串、整数、浮点数、逻辑、日期、范围、二进制、复合类型等。重点讨论了keyword、text、long、double、date以及object和nested类型的用途和特点。理解这些数据类型对于优化索引和搜索性能至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、类型概述

在这里插入图片描述

二、核心类型

一.字符串类型

1、keyword

使用keyword类型的字段,其不会被分析,给什么值就原封不动地按照这个值索引,所以关键字字段只能按其确切值进行搜索,通常用于过滤、排序和聚合。

2、text

当一个字段是要被全文搜索的,比如Email内容、产品描述,应该使用text类型。设置text类型以后,字段内容会被分析,在生成倒排索引以前,字符串会被分析器分成一个一个词项。text类型的字段不用于排序,很少用于聚合。

3、string(已经弃用)

string类型在ElasticSearch 旧版本中使用较多,从ElasticSearch 5.x开始不再支持string,由text和keyword类型替代。

二.整数类型

在满足需求的情况下,尽可能选择范围小的数据类型,字段的长度越短,索引和搜索的效率越高。

1、long

2、integer

3、short

4、byte

三.浮点类型

不同精度的浮点数

1、double

2、floar

3、half_float

4、scaled_float

四.逻辑类型:boolean类型

逻辑类型(布尔类型)可以接受true/false/”true”/”false”值

五.日期类型:data

JSON中没有date类型,es中的date可以由下面3种方式表示:

  1. 格式化的date字符串,例如"2018-01-01"或者"2018-01-01 12:00:00"
  2. 一个long型的数字,代表从1970年1月1号0点到现在的毫秒数
  3. 一个integer型的数字,代表从1970年1月1号0点到现在的秒数

六.范围类型

具有大小关系的一个值区间,所以会用到gt、gte、lt、lte…等逻辑表示符。ES支持下面6种范围数据类型:

1、integer_range

integer_range,带符号的32位整数区间,最小值-231,最大值231-1

2、long_range

带符号的64位整数区间,最小值-263,最小值263-1

3、float_range

float_range,单精度32位IEEE 754浮点数区间

4、double_range

double_range,双精度64位IEEE 754浮点数区间

5、date_range

date_range,日期值范围,表示为系统纪元以来经过的无符号64位整数毫秒

6、ip_range

ip_range,支持IPv4或IPv6(或混合)地址ip值范围

七.二进制类型:binary

二进制字段是指用base64来表示索引中存储的二进制数据,可用来存储二进制形式的数据,例如图像。默认情况下,该类型的字段只存储不索引。二进制类型只支持index_name属性。

三、复合类型

一.数组类型array

数组类型。默认情况下,任何字段都可以包含零个或多个值,当包含多个值时,它就表示array datatype了。但是,数组中的所有值必须具有相同的数据类型(要么同为字符串,要么同为整型,不能数组中一些值为字符串,另一些值为整型)。

{
"intList":[1,2,3,4,5],
"stringList":["a","b","c"]
}

使用array datatype,不需要预先配置,它们是开箱即用的。(不像整型,它需要手动定义type: “integer”)
使用_mapping查看索引的映射类型时,array datatype不会被写出来,还是以数组的元素的基本类型来表示
图片链接
在这里插入图片描述

二.对象类型object

object其实也是嵌套的类型,外部是一个JSON对象,里面包含了一个内部对象。
图片链接
在这里插入图片描述
只要字段的数据类型是object datatype,它就会有一个properties映射,该映射罗列出该字段的内部对象字段,然后内部对象再定义其每个字段的数据类型。

三.嵌套类型nested

四、地理类型(我没用过,了解即可)

一.地图坐标类型geo-point

geo-point datatype,地址位置数据类型,可以用来表示经纬度。

二.地理地图geo-shape

geo-shape datatype,即地理形状数据类型,当被索引的数据包含除地理点之外的形状(如长方形、圆形…)时,使用此数据类型。geo-shape映射将GeoJSON(一种对各种地理数据结构进行编码的格式)映射到geo-shape类型。

五、特殊类型

待补充

一.IP类型

二.范围类型

三.令牌计数类型

四.附件类型

五.抽取类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值