Как создать индексы Elasticsearch

How Create Elasticsearch Indices



Elasticsearch - это часть популярного стека ELK, используемого для анализа журналов и поиска. Приложения и системы постоянно регистрируют данные, которые могут быть очень полезны для устранения неполадок и отслеживания проблем. Используя стек ELK, у вас есть лучшие инструменты для быстрого и очень простого выполнения этих задач.

В этом кратком руководстве мы рассмотрим Elasticsearch, в частности, как создавать индексы в механизме Elasticsearch. Хотя вам не нужны всесторонние знания о стеке ELK, чтобы следовать этому руководству, может быть полезно иметь базовое понимание следующих тем:







  • Используя терминал, в частности cURL
  • Базовые знания API и JSON
  • Выполнение HTTP-запроса

ЗАМЕТКА: В этом руководстве также предполагается, что в вашей системе установлен и запущен Elasticsearch.



Что такое индексы Elasticsearch?

Без упрощения или чрезмерного усложнения индекс Elasticsearch представляет собой набор связанных документов JSON.



Как упоминалось в предыдущем посте, индексы Elasticsearch - это объекты JSON, которые считаются базовой единицей хранения в Elasticsearch. Эти связанные документы JSON хранятся в едином блоке, составляющем индекс. Думайте о документах Elasticsearch как о таблицах в реляционной базе данных.





Давайте свяжем индекс Elasticsearch с базой данных в мире SQL.

  • MySQL => Базы данных => Таблицы => Столбцы / Строки
  • Elasticsearch => Индексы => Типы => Документы JSON со свойствами

Как создать индекс Elasticsearch

Elasticsearch использует мощный и интуитивно понятный REST API для предоставления своих сервисов. Эта функция позволяет использовать HTTP-запросы для выполнения операций в кластере Elasticsearch. Поэтому мы будем использовать API создания индекса для создания нового индекса.



В этом руководстве мы будем использовать cURL для отправки запросов и сохранения целостности и удобства использования для всех пользователей. Однако, если вы столкнулись с ошибками с cURL, рассмотрите возможность использования Kibana Console.

Синтаксис для создания нового индекса в кластере Elasticsearch:

ПОЛОЖИЛ /

Чтобы создать индекс, все, что вам нужно сделать, это передать имя индекса без других параметров, что создает индекс с настройками по умолчанию.

Вы также можете указать различные функции индекса, например, в теле индекса:

  • Настройки для индекса
  • Псевдонимы индекса
  • Сопоставления для полей индекса

Имя индекса - обязательный параметр; в противном случае вы получите ошибку для URIL (/)

curl -X ПОСТАВИТЬ localhost: 9200
{'error': 'Неверный HTTP-метод для uri [/] и метода [PUT], разрешен: [DELETE, HEAD, GET]', 'status': 405}

Чтобы создать новый индекс с именем single_index, мы передаем запрос:

PUT / single_index

Для cURL используйте команду:

curl -X PUT 'localhost: 9200 / single_index? довольно'

Эта команда должна привести к HTTP-статусу 200 OK и сообщению с подтверждением: true как:

{
признал: правда,
'shards_acknowledged': правда,
'индекс': 'одиночный_индекс'
}

Вышеупомянутый запрос создает индекс single_index с настройками по умолчанию, поскольку мы не указывали никаких конфигураций.

Правила именования индексов

При создании имен для индексов Elasticsearch необходимо придерживаться следующих стандартов именования:

  1. Имя индекса должно быть только в нижнем регистре.
  2. Имена индексов не могут начинаться с тире (-), подчеркивания (_) или знака добавления (+).
  3. Имен быть не может. или ..
  4. Имена индексов не могут содержать специальные символы, такие как: , /, *,?,,, |, `` (Пробел), ,, #
  5. Длина имен индексов не должна превышать 255 байт. Многобайтовые символы будут учитываться в общей длине имени индекса. Например, если длина одного символа составляет 8 байтов, общая оставшаяся длина имени составляет 255-8.
  6. В последней версии Elasticsearch имена, начинающиеся с. зарезервированы для скрытых индексов и внутренних индексов, используемых плагинами Elasticsearch.

Как создать индексное тело

При использовании запроса PUT для создания индекса вы можете передавать различные аргументы, которые определяют настройки индекса, который вы хотите создать. Значения, которые вы можете указать в теле, включают:

  • Псевдонимы: Задает псевдонимы для индекса, который вы хотите создать; этот параметр не обязателен.
  • Настройки: Это определяет параметры конфигурации для индекса, который вы хотите создать. Если вы не укажете какие-либо параметры, индекс будет создан с использованием конфигураций по умолчанию.
  • Сопоставления: Это определяет отображение полей в индексе. Спецификации, которые вы можете включить в сопоставления, включают:
    • Имя поля
    • Тип данных
    • Параметр сопоставления

В качестве примера создания индекса с конфигурациями тела рассмотрим запрос ниже:

PUT / single_index_with_body
{
'настройки': {
'number_of_shards': 2,
'number_of_replicas': 2
},
сопоставления: {
'характеристики': {
'field1': {'тип': 'объект'}
}
}
}

Для запроса, эквивалентного cURL:

curl -XPUT 'http: // localhost: 9200 / single_index_with_body' -H 'Content-Type: application / json' -d '{' settings ': {' number_of_shards ': 2,' number_of_replicas ': 2},' mappings ' : {'properties': {'field1': {'type': 'object'}}}} '

Вышеупомянутый запрос создает новый индекс с именем single_index_with_body с 2 номерами шардов и 2 репликами. Он также создает сопоставление с полем имени field1 и вводит его как объект JSON.

Как только вы отправите запрос, вы получите ответ со статусом запроса:

{
признал: правда,
'shards_acknowledged': правда,
'index': 'single_index_with_body'
}

Подтверждено показывает, был ли индекс успешно создан в кластере, а shards_acknowledged показывает, было ли до истечения времени ожидания запущено необходимое количество копий сегментов для каждого сегмента в указанном индексе.

Как просмотреть индекс Elasticsearch

Чтобы просмотреть информацию о созданном вами индексе, используйте запрос, аналогичный запросу создания индекса, но используйте метод HTTP вместо PUT как:

ПОЛУЧИТЬ / single_index_with_body

Для cURL,

curl -XGET http: // localhost: 9200 / одиночный_индекс_with_body

Эта команда предоставит вам подробную информацию о запрошенном индексе в следующем виде:

{
'single_index_with_body': {
'псевдонимы': {},
'mappings': {
'характеристики' : {
'field1': {
'тип': 'объект'
}
}
},
'настройки' : {
'показатель' : {
'routing': {
'allocation': {
'включают' : {
'_tier_preference': 'data_content'
}
}
},
'number_of_shards': '2',
'provided_name': 'single_index_with_body',
'creation_date': '1611045687208',
'number_of_replicas': '2',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'version': {
'created': '7100299'
}
}
}
}
}

Заключение

В этом руководстве описывается, как работать с Elasticsearch для создания API индекса для создания новых индексов. Мы также обсудили, как создать подходящие имена для индексов и параметров конфигурации.

Используя это руководство, теперь вы можете создавать и просматривать индексы с помощью Elasticsearch API.