数据类型
- 核⼼数据类型
- 复杂数据类型
- 专⽤数据类型
核⼼数据类型
- 字符串
- text:⽤于全⽂索引,该类型的字段将通过分词器进⾏分词
- keyword:不分词,只能搜索该字段的完整的值
- 数值型
- long, integer, short, byte, double, float, half_float, scaled_float
- 布尔 - boolean
- ⼆进制 - binary:该类型的字段把值当做经过 64 编码的字符串,默认不存储,且不可搜索
- 范围类型
- 范围类型表示值是⼀个范围,⽽不是⼀个具体的值
- integer_range, float_range, long_range, double_range, date_range
- 譬如 age 的类型是 integer_range,那么值可以是 {“gte” : 20, “lte” : 40};搜索 “term” :{“age”: 21} 可以搜索该值
- ⽇期 - date
- 由于Json没有date类型,所以es通过识别字符串是否符合format定义的格式来判断是否为date类型format默认为:strict_date_optional_time||epoch_millis
- 格式:“2022-01-01” “2022/01/01 12:10:30” 这种字符串格式,从开始纪元(1970年1⽉1⽇0点) 开始的毫秒数,从开始纪元开始的秒数
示例
- PUT localhost:9200/nba/_mapping
{
"properties": {
"name": {
"type": "text"
},
"team_name": {
"type": "text"
},
"position": {
"type": "text"
},
"play_year": {
"type": "long"
},
"jerse_no": {
"type": "keyword"
},
" ": {
"type": "text"
},
"date": {
"type": "date"
}
}
}- POST localhost:9200/nba/_doc/4
{
"name": "蔡x坤",
"team_name": "勇⼠",
"position": "得分后卫",
"play_year": 10,
"jerse_no": "31",
" ": "打球最帅的明星",
"date":"2020-01-01"
}- POST localhost:9200/nba/_doc/5
{
"name": "杨超越",
"team_name": "猴急",
"position": "得分后卫",
"play_year": 10,
"jerse_no": "32",
" ": "打球最可爱的明星",
"date":1610350870
}- POST localhost:9200/nba/_doc/6
{
"name": "吴亦凡",
"team_name": "湖⼈",
"position": "得分后卫",
"play_year": 10,
"jerse_no": "33",
" ": "最会说唱的明星",
"date":1641886870000
}复杂数据类型
- 数组类型 Array
- ES中没有专⻔的数组类型, 直接使⽤[]定义即可,数组中所有的值必须是同⼀种数据类型, 不⽀持混合数据类型的数组:
- 字符串数组 [ “one”, “two” ]
- 整数数组 [ 1, 2 ]
- 对象数组
- [ { “name”: “Louis”, “age”: 18 }, { “name”: “Daniel”, “age”: 17 }]
- 同⼀个数组只能存同类型的数据,不能混存,譬如 [ 10, “some string” ] 是错误的
- 对象类型
- 对象类型可能有内部对象
复杂数据类型-示例
- POST localhost:9200/nba/_doc/8
{
"name": "吴亦凡",
"team_name": "湖⼈",
"position": "得分后卫",
"play_year": 10,
"jerse_no": "33",
" ": "最会说唱的明星",
"date": "1641886870",
"array": [
"one",
"two"
],
"address": {
"region": "China",
"location": {
"province": "GuangDong",
"city": "GuangZhou"
}
}
}- 索引方式
"address.region": "China", "address.location.province": "GuangDong", "address.location.city": "GuangZhou"
- POST localhost:9200/nba/_search
{
"query": {
"match": {
"address.region": "china"
}
}
}专用数据类型
- IP类型
- IP类型的字段⽤于存储IPv4或IPv6的地址, 本质上是⼀个⻓整型字段.
POST localhost:9200/nba/_mapping
{
"properties": {
"name": {
"type": "text"
},
"team_name": {
"type": "text"
},
"position": {
"type": "text"
},
"play_year": {
"type": "long"
},
"jerse_no": {
"type": "keyword"
},
" ": {
"type": "text"
},
"date": {
"type": "date"
},
"ip_addr": {
"type": "ip"
}
}
}PUT localhost:9200/nba/_doc/9
{
"name": "吴亦凡",
"team_name": "湖⼈",
"position": "得分后卫",
"play_year": 10,
"jerse_no": "33",
" ": "最会说唱的明星",
"ip_addr": "192.168.1.1"
}POST localhost:9200/nba/_search
{
"query": {
"term": {
"ip_addr": "192.168.0.0/16" //
192.168 .0 .0~192.168 .255 .255)
}
} 继续阅读与本文标签相同的文章
下一篇 :
聊聊前后端分离接口规范
-
H3C 设备校园网双出口配置案例
2026-05-16栏目: 教程
-
H3C 基本配置
2026-05-16栏目: 教程
-
k8s实践(十):监控工具Weave Scope详解
2026-05-16栏目: 教程
-
介绍下 Set、Map、WeakSet 和 WeakMap 的区别?
2026-05-16栏目: 教程
-
查看进程
2026-05-16栏目: 教程
