К счастью, с Elasticsearch, когда данные становятся избыточными, все, что вам нужно сделать, это получить доступ к инструменту для выполнения запросов и передачи данных по сети.
Это краткое руководство покажет вам, как использовать мощный API Elasticsearch для удаления документов и индексов.
ПРИМЕЧАНИЕ: Мы предполагаем, что в вашей системе работает Elasticsearch и у вас есть инструмент для выполнения запросов, например cURL. Мы также предоставляем необработанные запросы Kibana, если вы используете консоль Kibana (рекомендуется).
Как составить указатель?
Если вы хотите удалить и проиндексировать в Elasticsearch, вам сначала нужно убедиться, что он существует, прежде чем отправлять запрос DELETE.
Если вы попытаетесь удалить несуществующий индекс, вы получите сообщение об ошибке, подобное показанному ниже:
УДАЛИТЬ / this_index_does_not_existДля команды cURL:
curl -XDELETE «http: // localhost: 9200 / this_index_does_not_exist»Удаление индекса приведет к ошибке:
"ошибка" :
"первопричина" : [
"type": "index_not_found_exception",
"причина": "такого индекса нет [this_index_does_not_exist]",
"index_uuid": "_na_",
"ресурс.тип ":" index_or_alias ",
"ресурс.id ":" this_index_does_not_exist ",
"index": "this_index_does_not_exist"
],
"type": "index_not_found_exception",
"причина": "такого индекса нет [this_index_does_not_exist]",
"index_uuid": "_na_",
"ресурс.тип ":" index_or_alias ",
"ресурс.id ":" this_index_does_not_exist ",
"index": "this_index_does_not_exist"
,
«статус»: 404
Есть несколько способов проверить, существует ли индекс; лучше всего перечислить его имя. Например, вы можете использовать подстановочные знаки для соответствия определенному имени.
В приведенном ниже примере запроса перечислены индексы с именами te *
ПОЛУЧИТЬ / te *Команда cURL:
curl -XGET «http: // localhost: 9200 / te *»Эта команда должна вернуть все индексы, соответствующие этому конкретному шаблону, что позволит вам запомнить только частичное имя индекса, который вы хотите удалить.
"temp":
"псевдонимы": ,
"сопоставления": ,
"настройки" :
"индекс" :
"routing":
"allocation":
"включать" :
"_tier_preference": "data_content"
,
"number_of_shards": "1",
«предоставленное_имя»: «временная»,
"creation_date": "1611180802266",
"number_of_replicas": "1",
"uuid": "c7dOH6MQQUmHM2MKJ73ekw",
"версия":
"created": "7100299"
,
"temp_1":
"псевдонимы": ,
"сопоставления": ,
"настройки" :
"индекс" :
"routing":
"allocation":
"включать" :
"_tier_preference": "data_content"
,
"number_of_shards": "1",
"предоставленное_имя": "temp_1",
"creation_date": "1611180811874",
"number_of_replicas": "1",
"uuid": "pq1UUR2XTZS3xfs6Hxr4gg",
"версия":
"created": "7100299"
,
"temp_2":
"псевдонимы": ,
"сопоставления": ,
"настройки" :
"индекс" :
"routing":
"allocation":
"включать" :
"_tier_preference": "data_content"
,
"number_of_shards": "1",
"предоставленное_имя": "temp_2",
"creation_date": "1611180815041",
"number_of_replicas": "1",
"uuid": "8NdXWPuBTLe6r4eZ407W9Q",
"версия":
"created": "7100299"
Другой способ - добавить в запрос параметр ignore_unavailable. Например:
УДАЛИТЬ / ignore_me?ignore_unavailable = trueДля пользователей cURL:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "blackboard" nowrap = "0"]
curl -XDELETE «http: // localhost: 9200 / ignore_me?ignore_unavailable = true »
Как удалить Индекс?
Когда у вас есть индекс, который вы хотите удалить из Elasticsearch, используйте запрос DELETE, за которым следует имя индекса.
Общий синтаксис:
УДАЛИТЬ /Имя индекса может быть конкретным индексом или подстановочным знаком, который выбирает группу индексов. Убедитесь в правильном использовании подстановочных знаков; в противном случае вы можете удалить неправильные индексы.
ПРИМЕЧАНИЕ: Удаление индексов Elasticsearch с использованием псевдонимов запрещено.
Рассмотрим приведенный ниже пример запроса, который удаляет индекс temp_1:
УДАЛИТЬ / temp_1Для команды cURL:
curl -XDELETE «http: // localhost: 9200 / temp_1»Выполнение этой команды должно отвечать объектом JSON, что указывает на успешное удаление индекса.
«Подтверждено»: верно
Elasticsearch достаточно умен, чтобы знать, что вы можете случайно удалить индексы. Таким образом, вы можете указать, какие типы подстановочных знаков разрешены.
Эти типы выражений с подстановочными знаками включают:
- Все: Включает все индексы, включая открытые, закрытые и скрытые (начиная с)
- Открыть: Включает только открытые индексы
- Закрыто: Включает только закрытые индексы
- Никто: Использование подстановочных знаков запрещено.
Заключение
В этом быстром и простом руководстве мы обсудили процесс использования Elasticsearch для удаления индексов из кластера. Мы также обсудили простые способы, которые можно реализовать, чтобы избежать ошибок для несуществующих индексов.
Спасибо за чтение.