Index API는 setting, aliases, mappings, index templates같은 index의 모든 측면을 관리한다.
이 API는 index를 생성한다. index는 JSON Object를 어떤 index에라도 통과시킬 때 자동으로 생성된다. 또는 JSON Object를 pass 시키기 전에 만들 수 있다. index를 만드려면 settings, mappings, alias를 포함한 PUT request 또는 body가 없는 간단한 request를 보내야 한다.
Command Example
PUT colleges
정상 출력
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "colleges"
}
특정 index 이름을 포함한 delete request를 보낸다. _all
또는 *
을 이용해 다중 index를 삭제할 수도 있다.
Command Example
DELETE /colleges
정상 출력
{
"acknowledged" : true
}
한 개 또는 그 이상의 index에 get request를 보낸다. 그러면 index에 대한 정보들을 return한다. _all
또는 *
를 이용하여 다중 index의 정보를 얻을 수 있다.
Command Example
GET colleges
정상 출력
{
"colleges" : {
"aliases" : { },
"mappings" : { },
"settings" : {
"index" : {
"creation_date" : "1655186365541",
"number_of_shards" : "1",
"number_of_replicas" : "1",
"uuid" : "rklEs1hqTv6JhaKDll-oDA",
"version" : {
"created" : "7060299"
},
"provided_name" : "colleges"
}
}
}
}
index가 존재하는지 여부를 확인한다. 존재하면 HTTP response는 200
, 존재하지 않으면 404
를 return한다.
Command Example
HEAD colleges
정상 출력
200 - OK
404 - Not Found
URL 끝에 _settings
키워드를 추가하면 index settings 값을 얻을 수 있다.
Command Example
GET colleges/_settings
정상 출력
{
"colleges" : {
"settings" : {
"index" : {
"creation_date" : "1655186601043",
"number_of_shards" : "1",
"number_of_replicas" : "1",
"uuid" : "l_iw7081TJ-GtCNXbfxXxw",
"version" : {
"created" : "7060299"
},
"provided_name" : "colleges"
}
}
}
}
특정 index에 대한 통계치를 추출한다. URL의 끝에 _stats
를 통해 얻을 수 있다.
Command Example
GET colleges/_stats
정상 출력
{
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_all" : {
"primaries" : {
"docs" : {
"count" : 0,
"deleted" : 0
},
"store" : {
"size_in_bytes" : 230
},
"indexing" : {
"index_total" : 0,
"index_time_in_millis" : 0,
"index_current" : 0,
"index_failed" : 0,
"delete_total" : 0,
"delete_time_in_millis" : 0,
"delete_current" : 0,
"noop_update_total" : 0,
"is_throttled" : false,
"throttle_time_in_millis" : 0
},
...
index의 flush 프로세스는 현재 트랜잭션 로그에서만 유지되는 모든 데이터가 Apache Lucene 안에서도 영구적으로 유지되도록 한다. 이렇게 하면 index된 Lucene이 열린 후 트랜잭션 로그에서 데이터를 다시 indexing할 필요가 없으므로 복구 시간이 단축된다.
Command Example
POST colleges/_flusth
정상 출력
{
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
}
}