Еластичний пошук

Elasticsearch переіндексує всі індекси та перевіряє статус

Elasticsearch переіндексує всі індекси та перевіряє статус
Коли ви працюєте з базами даних, вам неминуче потрібно буде вносити такі зміни, як додавання, видалення та модифікація даних.

Коли ви змінюєте дані в індексі Elasticsearch, це може призвести до простою, оскільки функціонал завершується, а дані переіндексуються.

Цей посібник надасть вам набагато кращий спосіб оновлення індексів, не зазнаючи простою з існуючим джерелом даних. Використовуючи API переіндексації Elasticsearch, ми скопіюємо дані з певного джерела в інше.

Давайте почнемо.

ПРИМІТКА: Перш ніж ми почнемо, операції переіндексації вимагають великих ресурсів, особливо на великих індексах. Щоб мінімізувати час, необхідний для повторного індексування, відключіть number_of_replicas, встановивши значення 0 і ввімкніть їх після завершення процесу.

Увімкнути поле _Source

Операція повторного індексування вимагає ввімкнення поля джерела для всіх документів у вихідному індексі. Зверніть увагу, що поле джерела не індексується і не може бути здійснено пошук, але корисно для різних запитів.

Увімкніть поле _Source, додавши запис, як показано нижче:

ВСТАНОВИТИ індекс_1

“Відображення”:
"_source":
"увімкнено": true


Переіндексувати всі документи

Щоб переіндексувати документи, нам потрібно вказати джерело та пункт призначення. Джерелом і призначенням можуть бути існуючі індекси, псевдоніми індексу та потоки даних. Ви можете використовувати індекси з локального або віддаленого кластера.

ПРИМІТКА: Щоб індексація відбулася успішно, джерело та адреса не можуть бути подібними. Ви також повинні налаштувати призначення, як потрібно, перед повторним індексуванням, оскільки воно не застосовує налаштування з джерела або будь-якого пов'язаного з ним шаблону.

Загальний синтаксис переіндексації такий:

POST / _reindex

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

PUT / index_index

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "псевдоніми":
"псевдонім_1": ,
"псевдонім_2":
"filter": "term":
"користувач.id ":" kibana "
, "routing": "1"


Команда cURL:

curl -XPUT "http: // localhost: 9200 / source_index" -H 'Content-Type: application / json' -d '"settings": "number_of_replicas": 0, "number_of_shards": 1, "mappings" : "_source": "enabled": true, "aliases": "alias_1": , "alias_2": "filter": "term": "користувач.id ":" kibana "," маршрутизація ":" 1 " '

Тепер щодо індексу призначення (ви можете скористатися наведеною вище командою і змінити кілька речей або скористатися наведеною нижче):

PUT / index_index

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "псевдоніми":
"псевдонім_3": ,
"псевдонім_4":
"filter": "term":
"користувач.id ":" kibana "
, "routing": "1"


Як завжди, користувачі cURL можуть використовувати команду:

curl -XPUT "http: // localhost: 9200 / destination_index" -H 'Content-Type: application / json' -d '"settings": "number_of_replicas": 0, "number_of_shards": 1, "mappings" : "_source": "enabled": true, "aliases": "alias_3": , "alias_4": "filter": "term": "користувач.id ":" kibana "," маршрутизація ":" 1 " '

Тепер у нас є індекси, які ми хочемо використовувати, і ми можемо перейти до переіндексації документів.

Розглянемо наведений нижче запит, який копіює дані з source_index у destination_index:

Опублікувати _reindex

“Джерело”:
"index": "source_index"
,
"dest":
"index": "index_index"

Команда cURL для цього:

curl -XPOST "http: // localhost: 9200 / _reindex" -H 'Тип вмісту: application / json' -d '"джерело": "індекс": ".kibana "," dest ": " index ":" index_index " '

Виконання цієї команди має дати вам детальну інформацію про виконану операцію.

ПРИМІТКА: Index_index повинен мати дані.


"взяв": 2836,
"timed_out": хибне,
"всього": 13059,
"оновлено": 0,
"створено": 13059,
"видалено": 0,
"партії": 14,
"version_conflicts": 0,
"петлі": 0,
"повторні спроби":
"навалом": 0,
"пошук": 0
,
"throttled_millis": 0,
"request_per_second": -1.0,
"throttled_until_millis": 0,
"збої": []

Перевірка статусу переіндексації

Ви можете переглянути стан операцій переіндексації, просто використовуючи _tasks. Наприклад, розглянемо запит нижче:

ОТРИМАТИ / _задачі?детально = true & actions = * reindex & group_by = батьки

Команда cURL:

curl -XGET "http: // localhost: 9200 / _tasks?детально = true & actions = * reindex & group_by = батьки "

Це має дати вам детальну інформацію про процес переіндексації, як показано нижче:


"завдання":
"FTd_2iXjSXudN_Ua4tZhHg: 51847":
"вузол": "FTd_2iXjSXudN_Ua4tZhHg",
"id": 51847,
"type": "транспорт",
"action": "індекси: data / write / reindex",
"статус":
"всього": 13059,
"оновлено": 9000,
"створено": 0,
"видалено": 0,
"партії": 10,
"version_conflicts": 0,
"петлі": 0,
"повторні спроби":
"навалом": 0,
"пошук": 0
,
"throttled_millis": 0,
"request_per_second": -1.0,
"throttled_until_millis": 0
,
"description": "переіндексувати з [source_index] в [destination_index] [_ doc]",
"start_time_in_millis": 1611247308063,
"run_time_in_nanos": 2094157836,
"скасовується": правда,
"заголовки":


Висновок

Ми розглянули все, що вам потрібно знати про використання API переіндексації Elasticsearch для копіювання документів з одного індексу (джерела) до іншого (місця призначення). Хоча API переіндексації містить більше, цей посібник повинен допомогти вам розпочати роботу.

Битва за Веснот 1.13.6 Розробка випущена
Битва за Веснот 1.13.6, випущений минулого місяця, є шостим випуском розробки в 1.13.x, і це забезпечує низку вдосконалень, особливо до інтерфейсу кор...
Як встановити League of Legends на Ubuntu 14.04
Якщо ви шанувальник League of Legends, то це можливість для вас тестувати League of Legends. Зверніть увагу, що LOL підтримується на PlayOnLinux, якщо...
Встановіть останню стратегічну гру OpenRA на Ubuntu Linux
OpenRA - це ігровий движок Libre / Free Real Time Strategy, який відтворює ранні ігри Вествуда, такі як класичний Command & Conquer: Red Alert. Пошире...