Знайомство з 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

Додати коментар або відгук