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

Elasticsearch преиндексира всички индекси и проверява състоянието

Elasticsearch преиндексира всички индекси и проверява състоянието
Когато работите с бази данни, неизбежно ще трябва да правите промени като добавяне, премахване и модифициране на данни.

Когато модифицирате данни в индекс на Elasticsearch, това може да доведе до престой, тъй като функционалността завършва и данните се преиндексират.

Този урок ще ви даде много по-добър начин за актуализиране на индексите, без да изпитвате престой със съществуващия източник на данни. Използвайки API за повторно индексиране на Elasticsearch, ние ще копираме данни от конкретен източник в друг.

Нека започнем.

ЗАБЕЛЕЖКА: Преди да започнем, операциите за повторно индексиране са много ресурсни, особено при големи индекси. За да сведете до минимум времето, необходимо за повторно индексиране, деактивирайте number_of_replicas, като зададете стойността на 0 и ги активирайте, след като процесът приключи.

Активирайте полето _Source

Операцията за повторно индексиране изисква полето източник да бъде активирано за всички документи в индекса на източника. Имайте предвид, че полето източник не е индексирано и не може да се търси, но е полезно за различни заявки.

Активирайте полето _Source, като добавите запис, както е показано по-долу:

PUT index_1

“Mappings”:
"_source":
"разрешено": вярно


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

За да преиндексираме документи, трябва да посочим източника и местоназначението. Източникът и дестинацията могат да бъдат съществуващ индекс, псевдоним на индекса и потоци от данни. Можете да използвате индекси от локален или отдалечен клъстер.

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

Общият синтаксис за повторно индексиране е като:

POST / _reindex

Нека започнем, като създадем два индекса. Първият ще бъде източникът, а другият - дестинацията.

PUT / source_index

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "aliases":
"alias_1": ,
"alias_2":
"filter": "term":
"потребител.id ":" kibana "
, "маршрутизация": "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 "," маршрутизация ":" 1 " '

Сега за целевия индекс (можете да използвате горната команда и да промените няколко неща или да използвате това, дадено по-долу):

PUT / дестинация_индекс

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "aliases":
"alias_3": ,
"alias_4":
"filter": "term":
"потребител.id ":" kibana "
, "маршрутизация": "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:

POST _reindex

„Източник“:
"index": "source_index"
,
"dest":
"индекс": "дестинация_индекс"

Командата 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,
"опитва":
„насипно състояние“: 0,
„търсене“: 0
,
"throttled_millis": 0,
"заявки_за_секунда": -1.0,
"throttled_until_millis": 0,
"неуспехи": []

Проверка на състоянието на повторно индексиране

Можете да видите състоянието на операциите за повторно индексиране, като просто използвате _задачите. Например, разгледайте заявката по-долу:

ВЗЕМЕТЕ / _задачи?подробно = true & действия = * reindex & group_by = родители

Командата cURL е:

curl -XGET "http: // localhost: 9200 / _tasks?подробно = true & действия = * 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,
"noops": 0,
"опитва":
„насипно състояние“: 0,
„търсене“: 0
,
"throttled_millis": 0,
"заявки_за_секунда": -1.0,
"throttled_until_millis": 0
,
"description": "reindex from [source_index] to [destination_index] [_ doc]",
"start_time_in_millis": 1611247308063,
"run_time_in_nanos": 2094157836,
"отменяем": вярно,
"заглавки":


Заключение

Покрихме всичко, което трябва да знаете за използването на API за реиндексиране на Elasticsearch за копиране на документи от един индекс (източник) в друг (дестинация). Въпреки че API за повторно индексиране съдържа още нещо, това ръководство трябва да ви помогне да започнете.

Полезни инструменти за геймърите на Linux
Ако искате да играете игри на Linux, има вероятност да сте използвали приложения и помощни програми като Wine, Lutris и OBS Studio, за да подобрите иг...
HD Remastered Games за Linux, които никога преди не са имали издание на Linux
Много разработчици и издатели на игри излизат с HD ремастер на стари игри, за да удължат живота на франчайза, моля феновете, които искат съвместимост ...
Как да използвам AutoKey за автоматизиране на Linux игри
AutoKey е програма за автоматизация на настолни компютри за Linux и X11, програмирана в Python 3, GTK и Qt. Използвайки неговата функционалност за скр...