Elasticsearch 映射
elk
it书童
2019-10-04 10:55:54
0赞
0踩
626阅读
0评论
前面我们创建的索引以及插入数据,都是由Elasticsearch进行自动判断类型,有些时候我们是需要进行明确字段类型的,否则,自动判断的类型和实际需求是不相符的。
自动判断的规则如下:
JSON type | Field type |
---|---|
Boolean: true or false |
"boolean" |
Whole number: 123 |
"long" |
Floating point: 123.45 |
"double" |
String, valid date: "2014-09-15" |
"date" |
String: "foo bar" |
"string" |
Elasticsearch中支持的类型如下:
类型 | 表示的数据类型 |
---|---|
String | string ,text ,keyword |
Whole number | byte , short , integer , long |
Floating point | float , double |
Boolean | boolean |
Date | date |
- string类型在ElasticSearch 旧版本中使用较多,从ElasticSearch 5.x开始不再支持string,由text和keyword类型替代。
- text 类型,当一个字段是要被全文搜索的,比如Email内容、产品描述,应该使用text类型。设置text类型以后,字段内容会被分析,在生成倒排索引以前,字符串会被分析器分成一个一个词项。text类型的字段不用于排序,很少用于聚合。
- keyword类型适用于索引结构化的字段,比如email地址、主机名、状态码和标签。如果字段需要进行过滤(比如查找已发布博客中status属性为published的文章)、排序、聚合。keyword类型的字段只能通过精确值搜索到。
创建明确类型的索引:
# 明确指定文档字段类型
PUT /santi
{
"settings": {
"index": {
"number_of_shards": "2",
"number_of_replicas": "0"
}
},
"mappings": {
"properties": {
"name": {
"type": "text"
},
"age": {
"type": "integer"
},
"mail": {
"type": "keyword"
},
"hobby": {
"type": "text"
}
}
}
}
# 结果
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "santi"
}
# 结果映射
GET /santi/_mapping
# 结果
{
"santi" : {
"mappings" : {
"properties" : {
"age" : {
"type" : "integer"
},
"hobby" : {
"type" : "text"
},
"mail" : {
"type" : "keyword"
},
"name" : {
"type" : "text"
}
}
}
}
}
- 上一篇: Elasticsearch 结构化查询
- 下一篇: Elasticsearch 指定响应字段

关于我
一个文科出身的程序员,追求做个有趣的人,传播有价值的知识,微信公众号主要分享读书思考心得,不会有代码类文章,非程序员的同学请放心订阅
转载须注明出处:https://www.itshutong.com/articles/72/elasticsearch-map
精品付费
个人开发者通过payjs接入微信支付
3130
0
这一次,真正掌握composer
1712
0
相关推荐
Elastic Stack简介
615
0
Elasticsearch安装与插件
646
0
Elasticsearch 集群
714
0
Elasticsearch 结构化查询
606
0
Elasticsearch 批量操作
579
0
Elasticsearch 增删改查
608
0
Elasticsearch 基本概念
556
0
Elasticsearch 判断文档是否存在
1700
0
Elasticsearch 全文搜索
605
0