ES基础篇 常用API之索引类、映射类、别名类API

文章目录

  • 前言
  • 索引类API
    • 创建索引
    • 删除索引
    • 获取索引
    • 修改索引
    • 索引开关
  • 映射类
    • 添加映射
    • 查看映射
    • 其他
  • 别名类
    • 创建别名
    • 查看别名
    • 删除别名
    • 过滤别名

前言

之前写了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

你可能感兴趣的:(ES从入门到跑路,elasticsearch,java,大数据)