Elasticsearch(ES)数据类型

文章目录

    • 一、ES文档字段类型
      • 1.1 Meta-Field (元字段)
      • 1.2 Field(字段)
        • 1.2.1 字符串类型
        • 1.2.2 数值类型
        • 1.2.3 布尔类型
        • 1.2.4 日期类型
        • 1.2.5 范围类型
        • 1.2.6 二进制类型
        • 1.2.7 对象类型
        • 1.2.8 数组类型

一、ES文档字段类型

1.1 Meta-Field (元字段)

元字段可以理解为每个文档都会有的字段。不是用户定义的。以下划线"_" 开头。
1、有些字段只是为了存储,如_source。它是原始JSON文档(也就是源数据的内容)他们会出现在文档检索的结果中, 却不能通过这个字段做检索。
2、有些字段是标识,如_id,_index等。
下面是关于元字段的介绍:

序号 名称 说明
1 _id 文档的唯一标识id
2 _index 文档所属索引
3 _type 文档所属类型
4 _uid 在索引内唯一,由映射类型和id组成,在6.0版本已废弃
5 _source 源JSON文档
6 _size _source的字节数
7 _all 所有字段一起创建的索引,在6.0版本已废弃
8 _field_names 为文档非空字段名创建索引
9 _ignored 为忽略字段创建索引
10 _routing 文档到具体分片的路由
11 _meta 应用相关元信息

1.2 Field(字段)

字段也就是属性,它是自定义的,可以指定类型。默认情况下,每一个字段都是被索引的(使用倒排)

1.2.1 字符串类型

类型 描述
string 从ElasticSearch 5.x开始已废弃
text 用于全文索引,该类型的字段会被分词
keyword 不分词,只能通过精确值搜索,如果字段需要进行过滤、排序、聚合,设置keyword类型。

1.2.2 数值类型

类型 描述
整型 byte、short、integer、long 尽可能选择范围小的数据类型,占用空间小,索引效率高
浮点型 double、float、half_float、scaled_float

1.2.3 布尔类型

类型 描述
boolean true、false

1.2.4 日期类型

类型 描述
date 日期类型表示格式可以是这种“2018-01-13” 或 “2018-01-13 12:10:30”

1.2.5 范围类型

类型 描述
integer_range 整数的范围
float_range 单精度的范围
long_range 长整形的范围
double_range 双精度的范围
date_range 日期的范围
ip_range ip的范围

gt是大于,lt是小于,e是equals等于。
插入or更新文档|字段时,值写成json对象的形式:

"age_limit" : {
 "gte" : 20,
 "lte" : 40
}

1.2.6 二进制类型

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

1.2.7 对象类型

对象类型是JSON格式
定义mapping

"user" : {
    "type":"object"
}
#插入|更新字段的值,值写成json对象的形式
"user" : {
    "name":"xiaoming",
    "age":18
}

1.2.8 数组类型

ES没有专门的数组类型,定义mapping,写成元素的类型

"array" : {
    "type":"integer"
}

你可能感兴趣的:(Elasticsearch,elasticsearch,搜索引擎,大数据)