這些API負責管理索引的所有方面,如設定,別名,對映,索引模板。
此API可用於建立索引。 當使用者將JSON
物件傳遞到任何索引時,可以自動建立索引,也可以在此之前建立索引。 要建立索引,只需要傳送包含設定,對映和別名的發布請求,或者只傳送一個沒有正文的簡單請求。 例如,
POST http://localhost:9200/colleges
響應
{"acknowledged":true}
或者,加上一些設定 -
POST http://localhost:9200/colleges
請求正文
{
"settings" : {
"index" : {
"number_of_shards" : 5, "number_of_replicas" : 3
}
}
}
響應
{"acknowledged":true}
或使用對映 -
POST http://localhost:9200/colleges
請求正文
{
"settings" : {
"number_of_shards" : 3
},
"mappings" : {
"type1" : {
"_source" : { "enabled" : false }, "properties" : {
"college_name" : { "type" : "string" }, "college type" : {"type":"string"}
}
}
}
}
響應
{"acknowledged":true}
或者,用別名 -
POST http://localhost:9200/colleges
請求正文
{
"aliases" : {
"alias_1" : {}, "alias_2" : {
"filter" : {
"term" : {"user" : "manu" }
},
"routing" : "manu"
}
}
}
響應
{"acknowledged":true}
此API可用來刪除任何索引。只需要傳遞一個刪除請求以及指定索引的URL。 例如,
DELETE http://localhost:9200/colleges
可以通過使用_all,*
刪除所有索引。
這個API可以通過傳送get
請求到一個或多個索引來呼叫。這將返回有關索引的資訊。
GET http://localhost:9200/schools
響應
{
"schools":{
"aliases":{}, "mappings":{
"school":{
"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":{
"creation_date":"1454409831535", "number_of_shards":"5",
"number_of_replicas":"1", "uuid":"iKdjTtXQSMCW4xZMhpsOVA",
"version":{"created":"2010199"}
}
},
"warmers":{}
}
}
可以使用_all
或*
來獲取所有索引的資訊。
可以通過向該索引傳送獲取請求來確定索引的存在。如果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" : [
{ "add" : { "index" : "schools", "alias" : "schools_pri" } }
]
}
響應
{"acknowledged":true}
然後,
GET http://localhost:9200/schools_pri
響應
{"schools":{"aliases":{"schools_pri":{}},"}}
可以通過在URL結尾處附加_settings
關鍵字來獲取索引設定。 例如,
GET http://localhost:9200/schools/_settings
響應
{
"schools":{
"settings":{
"index":{
"creation_date":"1454409831535", "number_of_shards":"5",
"number_of_replicas":"1", "uuid":"iKdjTtXQSMCW4xZMhpsOVA",
"version":{"created":"2010199"}
}
}
}
}
此API有助於分析文字並使用偏移值和資料型別傳送令牌。 例如,
POST http://localhost:9200/_analyze
請求正文
{
"analyzer" : "standard",
"text" : "you are reading this at YIIBAI point"
}
響應
{
"tokens":[
{"token":"you", "start_offset":0, "end_offset":3, "type":"<ALPHANUM>", "position":0},
{"token":"are", "start_offset":4, "end_offset":7, "type":"<ALPHANUM>", "position":1},
{"token":"reading", "start_offset":8, "end_offset":15, "type":"<ALPHANUM>", "position":2},
{"token":"this", "start_offset":16, "end_offset":20, "type":"<ALPHANUM>", "position":3},
{"token":"at", "start_offset":21, "end_offset":23, "type":"<ALPHANUM>", "position":4},
{"token":"tutorials", "start_offset":24, "end_offset":33, "type":"<ALPHANUM>", "position":5},
{"token":"point", "start_offset":34, "end_offset":39, "type":"<ALPHANUM>", "position":6}
]
}
還可以使用任何索引分析文字,然後根據與該索引關聯的分析器來分析文字。
還可以建立具有對映的索引模板,這可以應用於新的索引。 例如,
POST http://localhost:9200/_template/template_a
響應
{
"template" : "tu*",
"settings" : {
"number_of_shards" : 3
},
"mappings" : {
"chapter" : {
"_source" : { "enabled" : false }
}
}
}
以「tu
」開頭的任何索引都將具有與模板相同的設定。
此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用於從索引記憶體中清除資料,並將其遷移到索引儲存,並清除內部事務紀錄檔。 例如,
GET http://localhost:9200/schools/_flush
響應
{"_shards":{"total":10, "successful":5, "failed":0}}
預設情況下,重新整理在Elasticsearch中一般按計劃來執行,但可以使用_refresh
顯式重新整理一個或多個索引。 例如,
GET http://localhost:9200/schools/_refresh
響應
{"_shards":{"total":10, "successful":5, "failed":0}}