Как да създадете индекси за еластично търсене

How Create Elasticsearch Indices



Elasticsearch е една част от популярния стек ELK, използван за анализ и търсене на регистрационни файлове. Приложенията и системите непрекъснато регистрират данни, които могат да бъдат много полезни за отстраняване на проблеми и проследяване на проблеми. Използвайки стека ELK, имате най -добрите инструменти за бързо и много лесно изпълнение на тези задачи.

В този кратък урок ще разгледаме Elasticsearch, по -конкретно как да създаваме индекси в двигателя Elasticsearch. Въпреки че не се нуждаете от изчерпателни познания за ELK стека, за да следвате този урок, основното разбиране на следните теми може да бъде от полза:







  • Използване на терминала, по -специално, cURL
  • Основни познания за API и JSON
  • Извършване на HTTP заявка

ЗАБЕЛЕЖКА: Този урок също предполага, че имате инсталиран и работещ Elasticsearch на вашата система.



Какво представляват индексите за еластично търсене?

Без да опростява или усложнява нещата, индексът Elasticsearch е колекция от свързани JSON документи.



Както бе споменато в предишна публикация, Elasticsearch индексите са JSON обекти - считани за базова единица за съхранение в Elasticsearch. Тези свързани JSON документи се съхраняват в едно цяло, което съставлява индекс. Мислете за документите на Elasticsearch като за таблици в релационна база данни.





Нека да свържем индекс Elasticsearch като база данни в света на SQL.

  • MySQL => Бази данни => Таблици => Колони/Редове
  • Elasticsearch => Индекси => Типове => JSON документи със свойства

Как да създадете индекс за еластично търсене

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 /единичен_индекс

За cURL използвайте командата:

curl -X PUT 'localhost: 9200/single_index? pretty'

Тази команда трябва да доведе до HTTP Status 200 OK и съобщение с потвърдено: true като:

{
признат: вярно,
'shards_acknowledged': вярно,
'index': 'single_index'
}

Заявката по -горе създава индекс 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': {'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 обект.

След като изпратите заявката, ще получите отговор със състоянието на заявката като:

{
признат: вярно,
'shards_acknowledged': вярно,
'index': 'single_index_with_body'
}

Acknowledged показва дали индексът е създаден успешно в клъстера, докато shards_acknowledged показва дали необходимия брой копия на фрагменти са стартирани за всеки фрагмент в посочения индекс преди изчакване.

Как да видите индекса на Elasticsearch

За да видите информацията за създадения от вас индекс, използвайте заявка, подобна на тази за създаване на индекс, но използвайте метода HTTP вместо PUT като:

GET /single_index_with_body

За cURL,

curl -XGET http: // localhost: 9200/single_index_with_body

Тази команда ще ви даде подробна информация за искания индекс като:

{
'single_index_with_body': {
'псевдоними': {},
'mappings': {
'Имоти' : {
'field1': {
'type': 'object'
}
}
},
'настройки' : {
'индекс': {
'routing': {
'разпределяне' : {
'include': {
'_tier_preference': 'data_content'
}
}
},
'number_of_shards': '2',
'provided_name': 'single_index_with_body',
'create_date': '1611045687208',
'number_of_replicas': '2',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'версия': {
'created': '7100299'
}
}
}
}
}

Заключение

Това ръководство обсъжда как да работите с Elasticsearch за създаване на API за индекси за създаване на нови индекси. Обсъдихме и как да създадем подходящи имена за индексите и конфигурационните настройки.

С помощта на това ръководство вече можете да създавате и преглеждате индекси с помощта на Elasticsearch API.