前言
之前写了ES基础篇 常用API之集群类API,这个主要是集群方面的一些API操作,用户可以通过HTTP快速查看集群、节点、分片等信息,也可以查看索引、别名、映射、文档等,如同我们在mysql中查看数据库、表信息等,能够通过restful便捷的查看各类信息,这篇主要是介绍一下ES索引类、映射类、别名类等方面的一些API,通过在kinbana上运行这些指令,可以快速进行创建、删除、获取、修改等操作
ES Restful API GET、POST、PUT、DELETE、HEAD含义(这几个是API的基本概念):
1)GET:获取请求对象的当前状态。
2)POST:改变对象的当前状态。
3)PUT:创建一个对象。
4)DELETE:销毁对象。
5)HEAD:请求获取对象的基础信息。
索引类API
创建索引
# 创建指定分片数和副本数的索引,index为指定的索引名称
PUT /{index}
{
"setting":{
# 分片数量:1个
"number_of_shards":3,
# 副本数量:0个
"number_of_replicas":1
}
}
删除索引
DELETE /{index}
获取索引
GET /{index}
修改索引
PUT /{index}/_settings
{
#将副本分片数量修改为1
"number_of_replicas": 0
}
索引开关
#关闭索引
POST /{index}/_close
#打开索引
POST /{index}/_open
映射类
添加映射
PUT /{index}/_mapping
{
"properties":{
"ipAddr":{
"type":"ip" # 为ipAddr字段设置字段类型为IP
}
}
}
查看映射
# 查看指定索引的所有字段的映射
GET /{index}/_mapping/
#查看指定索引下字段为ipAddr的映射
GET /{index}/_mapping/field/ipAddr
其他
ElasticSearch没有提供删除和修改映射功能。
别名类
ElasticSearch的别名,就类似数据库的视图
别名不仅仅可以关联一个索引,它能聚合多个索引,但对别名操作时,只有读权限
,没有写权限
,因为针对别名操作时,不不知道到底操作哪个索引
创建别名
POST /_aliases
{
"actions": [
{
"add": {
"index": "{index1}",
"alias": "{aliase_name}"
}
, "add": {
"index": "{index2}",
"alias": "{aliase_name}"
}
}
]
}
查看别名
#查看指定索引下的所有别名
GET /{index}/_alias
#获取指定别名的信息
GET /{aliase_name}
删除别名
POST /_aliases
{
"actions": [
{
"remove": {
"index": "{index}",
"alias": "{aliase_name}"
}
}
]
}
过滤别名
通过过滤索引指定别名提供了对索引查看的不同视图。
POST /_aliases
{
"actions": [
{
"add": {
"index": "blog",
"alias": "blog_aliase_a",
# 过滤auth字段为bill的数据
"filter": {
"term": {
"auth": "bill"
}
}
}
},
{
"add": {
"index": "blog",
"alias": "blog_aliase_b",
# 过滤cotent字段中包含how关键字的数据
"filter": {
"term": {
"content": "how"
}
}
}
},
{
"add": {
"index": "blog",
"alias": "blog_aliase"
}
}
]
}
GET /blog_aliase/_search #能看到blog_aliase(所有数据,没有过滤)
GET /blog_aliase_a/_search #只能看到blog_aliase_a
GET /blog_aliase_b/_search #只能看到blog_aliase_b