Знаёмства з Elasticsearch step by step

Добры дзень!
Сёння мы пагаворым аб рухавічку паўнатэкставага пошуку Elasticsearch (далей ES), з якім
працуе платформа Docsvision 5.5.

Знаёмства з Elasticsearch step by step

1. Устаноўка

Запампаваць актуальную версію можна па спасылцы: www.elastic.co/downloads/elasticsearch
Скрыншот усталёўшчыка ніжэй:
Знаёмства з Elasticsearch step by step

2. Праверка працаздольнасці

Пасля завяршэння ўстаноўкі перайдзіце па адрасе
http://localhost:9200/
Павінна адлюстравацца старонка са станам ES, прыклад ніжэй:
Знаёмства з Elasticsearch step by step

Калі старонка не адчынілася, пераканайцеся, што сэрвіс Elasticsearch запушчаны. У Windows гэта
служба Elasticsearch.
Знаёмства з Elasticsearch step by step

3. Падключэнне да Docsvision

Падключэнне да Elasticsearch наладжваецца на старонцы сэрвісу паўнатэкставага
індэксавання.
Знаёмства з Elasticsearch step by step

Тут трэба ўказаць:
1. Адрас сервера Elasticsearch (задаецца пры ўстаноўцы).
2. Радок падключэння да СКБД.
3. Адрас Docsvision (у фармаце ConnectAddress=http://SERVER/DocsVision/StorageServer/StorageServerService.
asmx
)
4. На ўкладцы «Карткі» і «Даведнікі» неабходна наладзіць тыя дадзеныя, якія
трэба індэксаваць.
Таксама трэба пераканацца, што ўліковы запіс, пад якім запушчана служба Docsvision
Fulltext Indexing service мае доступ да БД Docsvision на MS SQL.
Пасля падлучэння трэба пераканаецца, што ў БД MS SQL стварыліся заданні з прэфіксам:
"DV:FullText_<ІМЯБД>_CardWithFilesPrepareRange"
Знаёмства з Elasticsearch step by step

Пасля завяршэння налад у Windows-кліенце будзе разблакіраваны радок пошуку.

4. REST API Elastic

Адміністратар можа атрымаць розную інфармацыю аб працы Elasticsearch з дапамогай
які прадстаўляецца REST API.
У наступных прыкладах мы будзем выкарыстоўваць Insomnia Rest Client.

Атрыманне агульнай інфармацыі

Як толькі служба запусцілася і зарабіла (http://localhost:9200/ у браўзэры), можна
выканаць запыт:
http://localhost:9200/_cat/health?v

Атрымаем адказ аб стане службы Elasticsearch (у браўзэры):
Знаёмства з Elasticsearch step by step
Адказ аб стане ў Insomnia:
Знаёмства з Elasticsearch step by step
Зварачальны ўвага на Status - Green, Yellow, Red. Афіцыйная дакументацыя гаворыць аб статусах наступнае:
• Green - Усё добра (Кластар цалкам працаздольны)
• Yellow - Усе дадзеныя даступныя, але некаторыя рэплікі ў кластары пакуль што не выдзелены для іх
• Red - Частка дадзеных недаступная па любой прычыне (сам кластар функцыянуе нармальна)
Атрыманне станаў пра ноды ў кластары і іх стан (у мяне 1 нода):
http://localhost:9200/_cat/nodes?v
Знаёмства з Elasticsearch step by step

Усе індэксы (indices) ES:
http://localhost:9200/_cat/indices?v
Знаёмства з Elasticsearch step by step

Акрамя індэксаў ад Docsvision, могуць быць і індэксы іншых прыкладанняў - heartbeat,
kibana - калі вы іх карыстаецеся. Патрэбныя ад непатрэбных можна адсартаваць. Напрыклад,
возьмем толькі індэксы, у імя якіх ёсць %card% у назве:
http://localhost:9200/_cat/indices/*card*?v&s=index
Знаёмства з Elasticsearch step by step

Канфігурацыя Elasticsearch

Атрыманне налад Elasticsearch:
http://localhost:9200/_nodes
Вынік будзе даволі шырокі, у тым ліку шляхі да логаў:
Знаёмства з Elasticsearch step by step

Як даведацца спіс індэксаў, мы ўжо ведаем, Docsvision робіць гэта аўтаматычна, даючы імя індэксу ў фармаце:
<імябд+відІндэксаванайКарткі>
Таксама можна стварыць уласны незалежны індэкс:
http://localhost:9200/customer?pretty
Толькі гэта будзе не GET, а PUT запыт:
Знаёмства з Elasticsearch step by step

Вынік:
Знаёмства з Elasticsearch step by step

наступны запыт пакажа ўсе індэксы, у тым ліку і новыя (customer):
http://localhost:9200/_cat/indices?v
Знаёмства з Elasticsearch step by step

5. Атрыманне інфармацыі аб індэксаваць дадзеных

Стан індэксаў Elasticsearch

Пасля таго як першапачатковая наладкі з боку Docsvision праведзена, служба павінна быць гатова да працы і пачатку індэксавання дадзеных.
Першым чынам праверым, што азначнікі запаўняюцца і іх памер больш стандартных "байтаў" ужо знаёмым нам запытам:
http://localhost:9200/_cat/indices?v
у выніку бачым: праіндэксавана 87 "заданняў" і 72 "дакументы" калі казаць у тэрмінах нашай СЭД:
Знаёмства з Elasticsearch step by step

Праз некаторы час вынікі такія (па змаўчанні job індэксавання запускаецца праз кожныя 5 хвілін):
Знаёмства з Elasticsearch step by step

Бачым, што колькасць дакументаў павялічылася.

Як зразумець, што патрэбная картка праіндэксаваная?

• Па-першае, трэба пераканацца, што тып карткі ў Docsvision супадае з паказанымі ў наладах Elascticsearch дадзенымі.
• Па-другое, дачакацца індэксацыі масіва картак - пры трапленні ў Docsvision павінна прайсці некаторы час да з'яўлення дадзеных у сховішча.
• Па-трэцяе, можна пашукаць картку па CardID. Зрабіць гэта можна запытам:

http://localhost:9200/_search?q=_id=2116C498-9D34-44C9-99B0-CE89465637C9

Калі картка ёсць у сховішчы, мы ўбачым яе «волкія» дадзеныя, калі не, убачым прыкладна такі адказ:
Знаёмства з Elasticsearch step by step

Пошук карткі ў нодзе Elasticsearch

Знайсці дакумент па дакладным супадзенні поля Description:
http://localhost:9200/_search?q=description: Исходящий tv1
Вынік:
Знаёмства з Elasticsearch step by step

пошук дакумента, у якога ў Description ёсць уваходжанне 'Уваходны'
http://localhost:9200/_search?q=description like Входящий
Вынік:
Знаёмства з Elasticsearch step by step

Пошук карткі па змесціва прыкладзенага файла
http://localhost:9200/_search?q=content like ‘AGILE’
вынік:
Знаёмства з Elasticsearch step by step

Знойдзем усе карткі тыпу дакумент:
http://localhost:9200/_search?q=_type:CardDocument

ці ўсе карткі віду задання:
http://localhost:9200/_search?q=_type:CardTask

Выкарыстоўваючы канструкцыі і і параметры, якія аддае Elasticsearch у выглядзе JSON можна сабраць такі запыт:
http://localhost:9200/_search?q=_type:CardTask and Employee_RoomNumber: Орёл офиc and Employee_FirstName:Konstantin

Ён пакажа ўсе карткі тыпу задання, сярод карыстальнікаў у якіх FirstName = Konstantin, і якія знаходзяцца ў Арол Офіс.
Акрамя LIKE ёсць і іншыя задакументаваныя параметры:
unlike, fields, docs, content і г.д.
Усе яны апісаны тут.

На сёння ўсё!

#docsvision #docsvisionECM

Карысныя спасылкі:

  1. Insomnia Rest client https://insomnia.rest/download/#windows
  2. https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-get.html
  3. https://www.elastic.co/guide/en/elasticsearch/reference/1.4/_exploring_your_data.html
  4. https://stackoverflow.com/questions/50278255/elasticsearch-backup-on-windows-and-restore-on-linux
  5. https://z0z0.me/how-to-create-snapshot-and-restore-snapshot-with-elasticsearch/
  6. https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html#_document_input_parameters
  7. http://qaru.site/questions/15663281/elasticsearch-backup-on-windows-and-restore-on-linux

Крыніца: habr.com

Дадаць каментар