Після завершення встановлення перейдіть за адресою http://localhost:9200/
Повинна відобразитися сторінка зі станом ES, приклад нижче:
Якщо сторінка не відкрилася, переконайтеся, що сервіс Elasticsearch запущено. У Windows це
Служба Elasticsearch.
3. Підключення до Docsvision
Підключення до Elasticsearch налаштовується на сторінці повнотекстового сервісу
індексування.
Тут слід зазначити:
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»
Після завершення налаштувань у Windows-клієнті буде розблоковано рядок пошуку.
4. REST API Elastic
Адміністратор може отримати різну інформацію про роботу Elasticsearch за допомогою
що надається REST API.
У таких прикладах ми будемо використовувати Insomnia Rest Client.
Отримання загальної інформації
Як тільки служба запустилася та запрацювала (http://localhost:9200/ у браузері), можна
виконати запит: http://localhost:9200/_cat/health?v
Отримаємо відповідь про стан служби Elasticsearch (у браузері):
Відповідь про стан у Insomnia:
Звернімо увагу на Status - Green, Yellow, Red. Офіційна документація говорить про статуси:
• Green — Все добре (Кластер повністю працездатний)
• Yellow — Усі дані доступні, але деякі репліки в кластері поки що не виділені для них
• Red — Частина даних недоступна з будь-якої причини (кластер функціонує нормально)
Отримання станів про ноди в кластері та їх стан (у мене 1 нода): http://localhost:9200/_cat/nodes?v
Усі індекси (indices) ES: http://localhost:9200/_cat/indices?v
Крім індексів від Docsvision, можуть бути й індекси інших програм - heartbeat,
kibana - якщо ви їх використовуєте. Потрібні від непотрібних можна відсортувати. Наприклад,
візьмемо лише індекси, в імені яких є %card% у назві: http://localhost:9200/_cat/indices/*card*?v&s=index
Конфігурація Elasticsearch
Отримання налаштувань Elasticsearch: http://localhost:9200/_nodes
Результат буде досить великий, у тому числі шляхи до логів:
Як дізнатися список індексів, ми вже знаємо, Docsvision робить це автоматично, даючи ім'я індексу у форматі:
<імябд+видІндексованоїКартки>
Також можна створити власний незалежний індекс: http://localhost:9200/customer?pretty
Тільки це буде не GET, а PUT запит:
Результат:
наступний запит покаже всі індекси, у тому числі нові (customer): http://localhost:9200/_cat/indices?v
5. Отримання інформації про індексовані дані
Стан індексів Elasticsearch
Після того, як початкова настройка з боку Docsvision проведена, служба повинна бути готова до роботи та початку індексування даних.
Насамперед перевіримо, що індекси заповнюються і їх розмір більший за стандартні «байти» вже знайомим нам запитом: http://localhost:9200/_cat/indices?v
в результаті бачимо: проіндексовано 87 «завдань» та 72 «документи», якщо говорити в термінах нашої СЕД:
Через деякий час результати такі (за замовчуванням job індексування запускається через кожні 5 хвилин):
Бачимо, що кількість документів збільшилася.
Як зрозуміти, що потрібна картка проіндексована?
• По-перше, потрібно переконатися, що тип картки в Docsvision збігається із зазначеними в налаштуваннях Elascticsearch даними.
• По-друге, дочекатися індексації масиву карток - при попаданні в Docsvision має пройти деякий час до появи даних у сховищі.
• По-третє, можна пошукати картку CardID. Зробити це можна запитом:
Якщо картка є в сховищі, ми побачимо її «сирі» дані, якщо ні, побачимо приблизно таку відповідь:
Пошук картки в ноді Elasticsearch
Знайти документ щодо точного збігу поля Description: http://localhost:9200/_search?q=description: Исходящий tv1
Результат:
пошук документа, у якого в Description є входження 'Вхідний' http://localhost:9200/_search?q=description like Входящий
Результат:
Пошук картки за вмістом доданого файлу http://localhost:9200/_search?q=content like ‘AGILE’
результат:
Знайдемо всі картки типу документ: 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 і т.д.
Всі вони описані тут.