五、ElasticSearch 8.6.0 快速使用 - 映射 API 的基本操作
hi,我是温新,一名 PHPer
ES 版本:ElasticSearch 8.6.0
系统版本:Rocky Linux 9.1
学习目标:掌握映射的 CURD 操作
本篇文章结合官方文档编写及参考网络资料编写,虽非全部原创,但也是结合了自己的理解,若转载请附带本文 URL,编写不易,持续编写更不易,谢谢!
映射:把它当做 MySQL 中的数据表结构来看。
前情回顾
上篇文章中,添加文档时并没有创建映射,这是因为 ES 中的自动映射。
在 ES 中,创建索引前,不强制要求创建映射,ES 会根据字段的值来推断字段类型,从而自动创建并指定索引类型。
查看映射
1、查看完整映射
语法:
GET /<index_name>/_mappings
案例:
GET ziruchu/_mapping
返回值:
{
"ziruchu": {
"mappings": {
"properties": {
"age": {
"type": "long"
},
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
2、查看索引中指定字段的 _mappings
语法:
GET /<index_name>/_mappings/field/<field_name>
案例:
GET ziruchu/_mapping/field/name
返回值:
{
"ziruchu": {
"mappings": {
"name": {
"full_name": "name",
"mapping": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}
创建映射
语法:
PUT /<index_name>
{
"mappings": {
"properties": {
"field_a": {
"<parameter_name>": "<parameter_value>"
},
...
}
}
}
案例:
PUT arts
{
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "ik_max_word"
}
}
}
}
返回值:
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "arts"
}
修改映射属性
语法:
PUT <index_name>/_mapping
{
"properties": {
"<field_name>": {
"type": "text", // 必须和原字段类型相同,切不许显式声明
"analyzer":"ik_max_word", // 必须和元原词器类型相同,切必须显式声明
"fielddata": false
}
}
}
案例:
# 添加索引
put ziruchu_arts
# 再添加映射
PUT ziruchu_arts/_mapping
{
"properties": {
"name": {
"type":"keyword"
},
"age":{
"type":"integer"
}
}
}
返回值:
{
"acknowledged": true
}
请登录后再评论