在上一篇中,我们针对索引 API 相关管理 API 进行了总结,包括常见的 CRUD
及 Elasticsearch 特殊的 API。其中,我们提到,在 Elasticsearch 中,没有直接针对索引本身的“修改” API,而只能修改索引相关的属性。本篇,将介绍与属性相关的 API。
索引的属性主要包括:Mapping
(映射)、Alias
(别名)、Setting
(设置)。对索引的修改,也多是针对此三种属性进行的。
映射相关的 API 包括有查询映射、修改映射,以及特殊的查询字段映射及查询类型存在。
查询映射
GET /_mapping
GET /<target>/_mapping
使用 GET
方法,API 关键字为 _mapping
,中间参数是索引名字,可以用通配符代表所有索引,或者用逗号分隔多个索引名字,如果不指定,代表查询所有索引的映射。
修改映射
PUT /my-index-000001/_mapping
{
"properties": {
"email": {
"type": "keyword"
}
}
}
使用 PUT
方法,中间参数是索引名字,可以用通配符代表所有索引,也可以用逗号分隔多个索引名字,请求体中为要修改的映射的字段。
要注意,此方法用于添加新的字段以及对已有字段添加新的属性,而不是真的修改已有字段的属性。
如果想要修改一个已有字段的属性,官方推荐方式如下:
1.创建一个正确的新索引
2.把数据重索引到新索引
3.删除旧索引
参阅 变更已有字段的映射
如果想要修改一个已有字段的名字,官方推荐方法如下:
添加一个别名来替代字段名字
参阅重命名字段
查询字段映射
此 API 在“查询映射”的基础,查询更细的“字段”的映射。
GET /_mapping/field/<field>
GET /<target>/_mapping/field/<field>
方法为 GET
,API 关键字为 /_mapping/field
。参数为索引名字和字段名字。如果不指定索引,代表查询所有索引下相应字段的映射。在 Elasticsearch 中,很多名字的查询都支持模糊查询,所以这里的索引名字、字段名字,可以是模糊查询(如:acc*
)。
查询类型存在
从 7.0.0 版本开始,此 API 不再被推荐。
此 API 主要是用于查询映射的类型是否存在。
HEAD /<index>/_mapping/<type>
方法为 HEAD
,API 关键字为 _mapping
,参数为索引名字和类型。如果查到有,响应码为 200
,没查到,响应码为 404
。
别名相关 API 主要有创建别名、修改别名、查询别名和删除别名。
别名 API
此 API 可以通过在请求体指定不同的 action
实现对别名的创建、删除和修改(通过在一个请求中删除的同时又创建),还能使用日期数学,实现动态的别名创建。
POST /_aliases
{
"actions" : [
{ "add" : { "index" : "my-index-000001", "alias" : "alias1" } }
]
}
创建、修改别名
此 API 可以创建或修改索引的别名。
PUT /<index>/_alias/<alias>
POST /<index>/_alias/<alias>
PUT /<index>/_aliases/<alias>
POST /<index>/_aliases/<alias>
方法支持 PUT
和 POST
,API 中关键字为 _alias
或 _aliases
。参数分别代表索引名字和别名。
如果进一步在请求体中使用过滤器,还能实现针对指定数据添加别名。
查询索引别名
此 API 可以查询索引别名。
GET /_alias
GET /_alias/<alias>
GET /<index>/_alias/<alias>
方法为 GET
,API 中关键字为 _alias
。参数分别代表索引名字和别名,如果索引名字不指定,就代表所有索引。索引名字也可以使用通配符代表所有索引。
删除索引别名
此 API 可以删除索引别名。
DELETE /<index>/_alias/<alias>
DELETE /<index>/_aliases/<alias>
方法为 DELETE
,API 中关键字为 _alias
或 _aliases
。参数分别为索引名字和别名。索引名字也可以使用通配符代表所有索引。
设置相关 API 包括查询设置、修改设置以及特殊的分析 API。
查询设置
此 API 查询索引的设置(setting
)。
GET /<target>/_settings
GET /<target>/_settings/<setting>
方法为 GET
,API 中关键字为 _settings
。参数分别为索引名字和设置名字。不指定索引名字,就代表所有索引,不指定设置名字,就代表所有设置。索引名字和设置名字都支持通配符,通配符代表所有。
修改设置
此 API 修改动态索引设置。(一定要注意的是,只有符合 Elasticsearch 规定的动态索引设置才能在索引创建后修改)
PUT /my-index-000001/_settings
{
"index" : {
"number_of_replicas" : 2
}
}
方法为 PUT
,API 中关键字为 _settings
。参数为索引名字。请求体中为要修改的设置。
分析 API
此 API 用于分析文本。(从学到这里的程度看,和设置本身关系并不大,因为此 API 是用于直接指定分析器对文本进行分析,或者在索引上进行分析。可能学到后面才能理解官方将其放在这里的原因)
GET /_analyze
POST /_analyze
GET /<index>/_analyze
POST /<index>/_analyze
方法为 GET
或 POST
,API 中关键字为 _analyze
,参数为索引名字。
示例:
GET /_analyze
{
"analyzer" : "standard",
"text" : "Quick Brown Foxes!"
}
以上,就是索引本身属性相关的 API,包括映射、别名、设置。
欢迎关注我的博客:阿呜的边城
欢迎关注我的公众号:阿呜的编程
Elasticsearch 从入门到学会之五(索引API-索引属性)
原文:https://www.cnblogs.com/dev2007/p/15146436.html