Учебники

Elasticsearch — Индекс API

Эти 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, он не существует.

API открытия / закрытия индекса

Очень легко закрыть или открыть один или несколько индексов, просто добавив _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":{}},"}}
………………………………………………

Настройки индекса

Вы можете получить настройки индекса, просто добавив ключевое слово _settings в конце URL. Например,

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 tutorials 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», будет иметь те же настройки, что и template_a.

Индекс Статистика

Этот API помогает вам извлечь статистику о конкретном индексе. Вам просто нужно отправить запрос на получение с индексом URL и ключевым словом _stats в конце.

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. Например,