Еластично търсене

Как да създадем индекси на Elasticsearch

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

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

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

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

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

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

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

Как да създадете индекс на 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 / единичен_индекс

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

curl -X PUT "localhost: 9200 / single_index?красива"

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


„Признато“: вярно,
"отломки_потвърдени": вярно,
"индекс": "единичен_индекс"

Заявката по-горе създава индекс 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
,
“Mappings”:
"Имоти":
"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"

„Потвърдено“ показва дали индексът е създаден успешно в клъстера, докато „шардс_потвърден“ показва дали необходимият брой копия на парчета е стартиран за всеки парче в посочения индекс преди изтичане на времето.

Как да видите индекса на 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": "обект"


,
"настройки" :
"индекс":
"маршрутизация":
"разпределяне" :
"включва":
"_tier_preference": "data_content"


,
"number_of_shards": "2",
"provided_name": "single_index_with_body",
"create_date": "1611045687208",
"number_of_replicas": "2",
"uuid": "3TRkO7xmQcSUOOGtb6pXVA",
"версия":
"създаден": "7100299"




Заключение

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

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

SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...
Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...
0 А.д. Урок
От многото стратегически игри, 0 A.д. успява да се открои като изчерпателно заглавие и много дълбока, тактическа игра, въпреки че е с отворен код. Раз...