Эластичный поиск

Elasticsearch переиндексирует все индексы и проверяет статус

Elasticsearch переиндексирует все индексы и проверяет статус
Когда вы работаете с базами данных, вам неизбежно придется вносить изменения, такие как добавление, удаление и изменение данных.

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

Это руководство предоставит вам гораздо лучший способ обновления индексов без простоев с существующим источником данных. Используя API переиндексации Elasticsearch, мы будем копировать данные из одного источника в другой.

Давай начнем.

ПРИМЕЧАНИЕ: Прежде чем мы начнем, операции переиндексации требуют значительных ресурсов, особенно для больших индексов. Чтобы минимизировать время, необходимое для переиндексации, отключите number_of_replicas, установив значение 0, и включите их после завершения процесса.

Включить поле _Source

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

Включите поле _Source, добавив запись, как показано ниже:

PUT index_1

«Сопоставления»:
"_источник":
"включен": истина


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

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

ПРИМЕЧАНИЕ: Чтобы индексация прошла успешно, источник и место назначения не могут быть одинаковыми. Вы также должны настроить место назначения, как требуется, перед переиндексированием, потому что оно не применяет настройки из источника или любого связанного шаблона.

Общий синтаксис переиндексации выглядит следующим образом:

POST / _reindex

Начнем с создания двух индексов. Первый будет источником, а другой - местом назначения.

PUT / source_index

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "aliases":
"псевдоним_1": ,
"alias_2":
"filter": "term":
"Пользователь.id ":" кибана "
, "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": "user.id ":" kibana "," routing ":" 1 " '

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

PUT / destination_index

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "aliases":
"псевдоним_3": ,
"alias_4":
"filter": "term":
"Пользователь.id ":" кибана "
, "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": "user.id ":" kibana "," routing ":" 1 " '

Теперь, когда у нас есть индексы, которые мы хотим использовать, мы можем перейти к переиндексации документов.

Рассмотрим запрос ниже, который копирует данные из source_index в destination_index:

POST _reindex

"источник":
"индекс": "исходный_индекс"
,
"dest":
"index": "destination_index"

Команда cURL для этого:

curl -XPOST "http: // localhost: 9200 / _reindex" -H 'Content-Type: application / json' -d '"source": "index": ".kibana "," dest ": " index ":" destination_index " '

Выполнение этой команды должно предоставить вам подробную информацию о выполненной операции.

ПРИМЕЧАНИЕ: Source_index должен содержать данные.


«взял»: 2836,
"timed_out": ложь,
«всего»: 13059,
"обновлено": 0,
«создано»: 13059,
"удалено": 0,
«партий»: 14,
"version_conflicts": 0,
"noops": 0,
"retries":
"навалом": 0,
"поиск": 0
,
"throttled_millis": 0,
«requests_per_second»: -1.0,
"throttled_until_millis": 0,
"неудачи": []

Проверка статуса переиндексации

Вы можете просмотреть статус операций переиндексации, просто используя _tasks. Например, рассмотрим запрос ниже:

GET / _tasks?подробно = правда & действия = * переиндексировать & group_by = родители

Команда cURL:

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

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


"задачи" :
"FTd_2iXjSXudN_Ua4tZhHg: 51847":
"узел": "FTd_2iXjSXudN_Ua4tZhHg",
"id": 51847,
"тип": "транспорт",
"действие": "индексы: данные / запись / переиндексирование",
"статус" :
«всего»: 13059,
«обновлено»: 9000,
«создано»: 0,
"удалено": 0,
«партий»: 10,
"version_conflicts": 0,
"noops": 0,
"retries":
"навалом": 0,
"поиск": 0
,
"throttled_millis": 0,
«requests_per_second»: -1.0,
"throttled_until_millis": 0
,
"description": "переиндексировать с [source_index] на [destination_index] [_ doc]",
"start_time_in_millis": 1611247308063,
"running_time_in_nanos": 2094157836,
"cancellable": истина,
"заголовки":


Заключение

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

Обзор беспроводной мыши Microsoft Sculpt Touch
Я недавно прочитал о Microsoft Sculpt Touch беспроводная мышь и решил ее купить. Побывав некоторое время, я решил поделиться своим опытом с ним. Эта б...
Экранный трекпад и указатель мыши AppyMouse для планшетов с Windows
Пользователи планшетов часто пропускают указатель мыши, особенно когда они привыкли пользоваться ноутбуками. Смартфоны и планшеты с сенсорным экраном ...
Средняя кнопка мыши не работает в Windows 10
В средняя кнопка мыши помогает пролистывать длинные веб-страницы и экраны с большим объемом данных. Если это прекратится, вы в конечном итоге будете и...