这些API负责管理索引的所有方面,如设置,别名,映射,索引模板。

创建索引

此API可用于创建索引。

    //创建的索引的索引名为colleges
POST http://localhost:9200/colleges

执行结果为

{"acknowledged":true}

或者,加上一些设置如下 -

//创建的新的索引的索引名是colleges
POST http://localhost:9200/colleges
{                  
   "settings" : {  //指定该索引的一些设置
      "index" : {    
         "number_of_shards" : 5, "number_of_replicas" : 3
      }
   }
}

执行结果

{"acknowledged":true}

或使用映射

  //创建的索引的索引名是colleges
POST http://localhost:9200/colleges
{
   "settings" : {  //指定该索引的一些设置
      "number_of_shards" : 3
   },

   "mappings" : {  //指定该索引下的一些映射
      "type1" : {  //type名是"type1"  注意:在ES中创建一个mapping映射类似于在数据库中定义表结构,即表里面有哪些字段、字段是什么类型、字段的默认值等
         "_source" : { "enabled" : false }, "properties" : {
            "college_name" : { "type" : "string" }, "college type" : {"type":"string"}
         }
      }
   }
}

执行的结果如下:

{"acknowledged":true}
删除索引

此API可用来删除任何索引。只需要传递一个删除请求以及指定索引的URL。 例如,

DELETE http://localhost:9200/colleges

可以通过使用_all或者*删除所有索引。如下

DELETE http://localhost:9200/_all
或者
DELETE http://localhost:9200/*
获取索引

这个API可以通过发送get请求到一个或多个索引来调用。这将返回有关索引的信息。

GET http://localhost:9200/schools

执行结果

{
   "schools":{     //返回有关该索引的详细信息
      "aliases":{}, "mappings":{
         "school":{  //注意:在ES中的mapping映射 类似于在数据库中定义表结构,即表里面有哪些字段、字段是什么类型、字段的默认值等
            "properties":{
               "city":{"type":"string"}, "description":{"type":"string"},
               "fees":{"type":"long"}, "location":{"type":"double"},
               "name":{"type":"string"}, "rating":{"type":"string"},
               "state":{"type":"string"}, "street":{"type":"string"},
               "tags":{"type":"string"}, "zip":{"type":"string"}
            }
         }
      },

      "settings":{ //该索引的一些设置信息
         "index":{ //number_of_shards是指索引的分片数,而number_of_replicas是指索引的备份数
            "creation_date":"1454409831535", "number_of_shards":"5",
            "number_of_replicas":"1", "uuid":"iKdjTtXQSMCW4xZMhpsOVA",
            "version":{"created":"2010199"}
         }
      },
      "warmers":{}
   }
}

可以使用_all*来获取所有索引的信息。

测试索引存在
HEAD twitter  

Elasticsearch索引API_Elasticsearch
可以通过向该索引发送“获取请求”来确定索引的存在。如果HTTP响应为200,则存在; 如果是404,它不存在。

打开/关闭索引API

通过在post中添加_close_open来请求索引,可以很容易地关闭或打开一个或多个索引。 例如,关闭索引-

//关闭了索引之后,就查不到该索引了
说明: 关闭的索引不能进行读写操作,几乎不占集群开销。
关闭的索引可以打开,打开走的是正常的恢复流程。

POST http://localhost:9200/schools/_close

或打开索引-

POST http://localhost:9200/schools/_open
索引别名

此API有助于使用_aliases关键字向任何索引提供别名。 单个别名可以映射到多个别名,且别名不能与索引具有相同的名称。 例如

POST http://localhost:9200/_aliases
{
   "actions" : [  //给schools索引添加一个别名 schools_pri
      { "add" : { "index" : "schools", "alias" : "schools_pri" } }
   ]
}

执行结果:

{"acknowledged":true}

然后

   //我们通过别名来访问对应的索引
GET http://localhost:9200/schools_pri

执行结果

//下面的schools是原索引名称    而schools_pri是其别名
{"schools":{"aliases":{"schools_pri":{}},"}}
索引设置

可以通过在URL结尾处附加_settings关键字来获取索引设置。 例如,

//下面的schools是索引的名称  后面加了个settings 代表我们要获取该索引的设置信息
GET http://localhost:9200/schools/_settings

执行结果

{
   "schools":{
      "settings":{  //该索引的一些设置信息
         "index":{   //number_of_shards是指索引的分片数,而number_of_replicas是指索引的备份数
            "creation_date":"1454409831535", "number_of_shards":"5", 
            "number_of_replicas":"1", "uuid":"iKdjTtXQSMCW4xZMhpsOVA", 
            "version":{"created":"2010199"}
        }
      }
   }
}
索引模板

在创建索引时,为每个索引写定义信息可能是一件繁琐的事情,ES提供了索引模板功能,让你可以定义一个索引模板,模板中定义好settings、mapping、以及一个模式定义来匹配创建的索引。
注意:模板只在索引创建时被参考,修改模板不会影响已创建的索引

举例来说明:新增/修改名为tempae_1的模板,匹配名称为te* 或 bar*的索引创建:

     //_templates是创建模板的意思,  而template_1是新建的模板的名称
PUT _template/template_1
{                   //该模板 匹配名称为te* 或 bar*的索引创建
  "index_patterns": ["te*", "bar*"],
  "settings": {
    "number_of_shards": 1
  },
  "mappings": {
    "type1": {  //注意:在ES中创建一个mapping映射类似于在数据库中定义表结构,即表里面有哪些字段、字段是什么类型、字段的默认值等
      "_source": {
        "enabled": false
      },
      "properties": {
        "host_name": {
          "type": "keyword"
        },
        "created_at": {
          "type": "date",
          "format": "EEE MMM dd HH:mm:ss Z YYYY"
        }
      }
    }
  }
}

查看索引模板

GET /_template/template_1

GET /_template/temp*     //这种方式是使用通配符查看

GET /_template/template_1,template_2

GET /_template //查看所有的索引模板

删除模板

//删除名为template_1的索引模板
DELETE /_template/template_1
索引统计

此API可用于提取有关特定索引的统计信息。只需要发送一个带有索引URL_stats关键字的get请求。

//查看指定索引的状态信息:
GET http://localhost:9200/schools/_stats

执行结果

………………………………………………
{"_shards":{"total":10, "successful":5, "failed":0}, "_all":{"primaries":{"docs":{
   "count":3, "deleted":0}}}, "store":{"size_in_bytes":16653, "throttle_time_in_millis":0},
………………………………………………
刷新清除数据

此API用于从索引内存中清除数据,并将其迁移到持久存储中,并清除内部事务日志。 例如,

//Flush,将缓存在内存中的索引数据刷新到持久存储中
GET http://localhost:9200/schools/_flush

执行结果

{"_shards":{"total":10, "successful":5, "failed":0}}

本文转载自;https://www.yiibai.com/elasticsearch/elasticsearch_index_apis.html