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

1. Устаноўка
Запампаваць актуальную версію можна па спасылцы:
Скрыншот усталёўшчыка ніжэй:

2. Праверка працаздольнасці
Пасля завяршэння ўстаноўкі перайдзіце па адрасе
Павінна адлюстравацца старонка са станам ES, прыклад ніжэй:

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

3. Падключэнне да Docsvision
Падключэнне да Elasticsearch наладжваецца на старонцы сэрвісу паўнатэкставага
індэксавання.

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

Пасля завяршэння настроек у Windows-кліенце будзе разблакавала радок пошуку.
4. REST API Elastic
Адміністратар можа атрымаць розную інфармацыю аб працы Elasticsearch з дапамогай
які прадстаўляецца REST API.
У наступных прыкладах мы будзем выкарыстоўваць Insomnia Rest Client.
Атрыманне агульнай інфармацыі
Як толькі служба запусцілася і зарабіла (http://localhost:9200/ у браўзэры), можна
выканаць запыт:
Атрымаем адказ аб стане службы Elasticsearch (у браўзэры):

Адказ аб стане ў Insomnia:

Зварачальны ўвага на Status - Green, Yellow, Red. Афіцыйная дакументацыя гаворыць аб статусах наступнае:
• Green - Усё добра (Кластар цалкам працаздольны)
• Yellow - Усе дадзеныя даступныя, але некаторыя рэплікі ў кластары пакуль што не выдзелены для іх
• Red - Частка дадзеных недаступная па любой прычыне (сам кластар функцыянуе нармальна)
Атрыманне станаў пра ноды ў кластары і іх стан (у мяне 1 нода):

Усе індэксы (indices) ES:

Акрамя індэксаў ад Docsvision, могуць быць і індэксы іншых прыкладанняў - heartbeat,
kibana - калі вы іх выкарыстоўваеце.
возьмем толькі індэксы, у імя якіх ёсць %card% у назве:

Канфігурацыя Elasticsearch
Атрыманне налад Elasticsearch:
Вынік будзе даволі шырокі, у тым ліку шляхі да логаў:

Як даведацца спіс індэксаў, мы ўжо ведаем, Docsvision робіць гэта аўтаматычна, даючы імя індэксу ў фармаце:
<імябд+відІндэксаванайКарткі>
Таксама можна стварыць уласны незалежны індэкс:
Толькі гэта будзе не GET, а PUT запыт:

Вынік:

наступны запыт пакажа ўсе індэксы, у тым ліку і новыя (customer):

5. Атрыманне інфармацыі аб індэксаваць дадзеных
Стан індэксаў Elasticsearch
Пасля таго як першапачатковая наладкі з боку Docsvision праведзена, служба павінна быць гатова да працы і пачатку індэксавання дадзеных.
Першым чынам праверым, што азначнікі запаўняюцца і іх памер больш стандартных "байтаў" ужо знаёмым нам запытам:
у выніку бачым: праіндэксавана 87 "заданняў" і 72 "дакументы" калі казаць у тэрмінах нашай СЭД:

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

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

Пошук карткі ў нодзе Elasticsearch
Знайсці дакумент па дакладным супадзенні поля Description:
Вынік:

пошук дакумента, у якога ў Description ёсць уваходжанне 'Уваходны'
Вынік:

Пошук карткі па змесціва прыкладзенага файла
вынік:

Знойдзем усе карткі тыпу дакумент:
ці ўсе карткі віду задання:
Выкарыстоўваючы канструкцыі і і параметры, якія аддае Elasticsearch у выглядзе JSON можна сабраць такі запыт:
Ён пакажа ўсе карткі тыпу задання, сярод карыстальнікаў у якіх FirstName = Konstantin, і якія знаходзяцца ў Арол Офіс.
Акрамя LIKE ёсць і іншыя задакументаваныя параметры:
unlike, fields, docs, content і г.д.
Усе яны апісаны .
На сёння ўсё!
#docsvision #docsvisionECM
Карысныя спасылкі:
- Insomnia Rest client
Крыніца: habr.com
