У цьому короткому навчальному посібнику ми розглянемо Elasticsearch, зокрема, як створювати індекси в двигуні Elasticsearch. Хоча вам не потрібні будь-які всебічні знання про стек ELK, щоб дотримуватися цього підручника, базове розуміння таких тем може бути вигідним:
- Використовуючи термінал, зокрема, cURL
- Базові знання API та JSON
- Подання запиту HTTP
ПРИМІТКА: Цей посібник також передбачає, що у вас встановлено та працює 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 PUT “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 як:
“Визнаний”: правда,
"осколки_визнані": правда,
"index": "single_index"
Наведений вище запит створює індекс single_index із налаштуваннями за замовчуванням, оскільки ми не вказали жодної конфігурації.
Правила іменування індексів
Створюючи імена для індексів Elasticsearch, ви повинні дотримуватися таких стандартів імен:
- Ім'я індексу повинно бути лише з малої літери.
- Імена індексів не можуть починатися з тире (-), підкреслення (_) або знака додавання (+)
- Імен бути не може . або ..
- Імена покажчиків не можуть містити спеціальні символи, такі як: \, /, *, ?, “, <, >, |, "(пробіл), #
- Довжина імен індексів повинна бути менше 255 байт. Багатобайтові символи будуть враховуватися в загальній довжині імені індексу. Наприклад, якщо довжина одного символу становить 8 байт, загальна довжина назви, що залишилася, становить 255 - 8
- В останній версії Elasticsearch імена, які починаються з a . зарезервовані для прихованих індексів та внутрішніх індексів, що використовуються плагінами Elasticsearch.
Як створити тіло індексу
Використовуючи запит PUT для створення індексу, ви можете передавати різні аргументи, що визначають параметри індексу, який ви хочете створити. Значення, які ви можете вказати в тілі, включають:
- Псевдоніми: Визначає імена псевдонімів для індексу, який ви хочете створити; цей параметр необов’язковий.
- Налаштування: Це визначає параметри конфігурації індексу, який ви хочете створити. Якщо не вдається вказати будь-які параметри, індекс створюється за допомогою конфігурацій за замовчуванням.
- Відображення: Це визначає відображення полів в індексі. Технічні характеристики, які ви можете включити в зіставлення, включають:
- Назва поля
- Тип даних
- Параметр відображення
Для прикладу створення індексу з конфігураціями тіла розглянемо запит нижче:
PUT / single_index_with_body"налаштування":
"number_of_shards": 2,
"number_of_replicas": 2
,
“Відображення”:
"властивості":
"field1": "type": "object"
Для запиту, еквівалентного 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.
Після того, як ви надішлете запит, ви отримаєте відповідь із статусом запиту:
“Визнаний”: правда,
"осколки_визнані": правда,
"index": "single_index_with_body"
"Підтверджено" показує, чи успішно створено індекс у кластері, тоді як "shards_acknowledged" показує, чи була задіяна необхідна кількість копій осколка для кожного осколка в зазначеному індексі до часу очікування.
Як переглянути індекс Elasticsearch
Щоб переглянути інформацію про створений вами індекс, використовуйте запит, подібний до запиту на створення індексу, але використовуйте метод HTTP замість PUT як:
GET / single_index_with_bodyДля curL,
curl -XGET “http: // localhost: 9200 / single_index_with_body”Ця команда надасть вам детальну інформацію про запитуваний індекс як:
"single_index_with_body":
"псевдоніми": ,
"відображення":
"властивості":
"field1":
"type": "об'єкт"
,
"налаштування":
"індекс":
"маршрутизація":
"виділення":
"включати" :
"_tier_preference": "вміст_даних"
,
"number_of_shards": "2",
"provided_name": "single_index_with_body",
"create_date": "1611045687208",
"number_of_replicas": "2",
"uuid": "3TRkO7xmQcSUOOGtb6pXVA",
"версія":
"створено": "7100299"
Висновок
У цьому посібнику було обговорено, як співпрацювати з Elasticsearch для створення API індексу для створення нових індексів. Ми також обговорили, як створити відповідні імена для індексів та налаштувань конфігурації.
За допомогою цього посібника тепер ви можете створювати та переглядати індекси за допомогою API Elasticsearch.