这些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
可以通过向该索引发送“获取请求”来确定索引的存在。如果HTTP响应为200
,则存在; 如果是404
,它不存在。
通过在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