Здравейте!
Днес ще говорим за движка за пълен текстов търсене 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 — ако ги използвате. Нужните от ненужните могат да се сортират. Например,
вземете само индексите, в името на които има rd% в названието:

Конфигурация на Elasticsearch
Получаване на настройки на Elasticsearch:
Резултатът ще бъде доста обширен, включително пътища към логовете:

Как да разберем списъка с индекси, вече знаем, Docsvision го прави автоматично, давайки името на индекса във формат:
<имябд+видИндексируемойКарточки>
Може също така да се създаде собствен независим индекс:
Само това няма да е GET, а PUT заявка:

Резултат:

следващата заявка ще покаже всички индекси, включително новите (customer):

5. Получаване на информация за индексираните данни
Състояние на индексите Elasticsearch
След като първоначалните настройки от страна на Docsvision са направени, услугата трябва да е готова за работа и започване на индексирането на данни.
На първо място, нека проверим дали индексите се запълват и техният размер е над стандартните 'байтове' със вече познатата ни заявка:
в резултат виждаме: индексирани са 87 'задачи' и 72 'документа', ако говорим в термини на нашата СЕЕД:

След известно време, резултатите са такива (по подразбиране задачата за индексиране се стартира на всеки 5 минути):

Виждаме, че броят документи се е увеличил.
Как да разберем, че необходимата карта е индексирана?
• На първо място, трябва да се уверим, че типовете карти в Docsvision съвпадат с посочените в настройките на Elasticsearch данни.
• На второ място, трябва да изчакаме индексирането на масива от карти — при попадане в Docsvision трябва да мине известно време, преди данните да се появят в хранилището.
• На трето място, може да се потърси картата по CardID. Това може да стане с заявка:
В случай че картата е в хранилището, ще видим нейните 'сурови' данни, ако не, ще видим приблизително такъв отговор:

Търсене на карта в нода Elasticsearch
Намиране на документ по точно съвпадение на полето Description:
Резултат:

търсене на документ, в който в Description има вхождение 'Входящ'
Резултат:

Търсене на карта по съдържанието на приложен файл
резултат:

Нека намерим всички карти от тип документ:
или всички карти от вида задания:
Използвайки конструкции and и параметри, които Elasticsearch отдава под формата на JSON, може да се състави такава заявка:
Той ще покаже всички карти от тип задача, сред потребителите, чието FirstName е = Konstantin и се намират в Орёл Офис.
Освен LIKE има и други документирани параметри:
unlike, fields, docs, content и т.н.
Всички те са описани .
За днес е всичко!
#docsvision #docsvisionECM
Полезни връзки:
- Insomnia Rest клиент
Източник: habr.com
