Настройка полнотекстового поиска
Полнотекстовый поиск в системе Docsvision — это поиск карточек, содержащих заданную строку в данных и/или в связанных файлах.
-
Поиска точного совпадения слов.
-
Поиска слов, начинающихся с заданной последовательности букв, например, по ключевому слову "приказ" будут отобраны слова "приказываю", "приказать" и подобные.
-
Морфологического поиска — поиска с учетом словоформ.
Полнотекстовый поиск может искать данные, которые были проиндексированы сервисом полнотекстового индексирования Docsvision. Данный сервис передает данные во внешнюю систему поиска, которая непосредственно индексирует их и предоставляет ответы на поисковые запросы.
-
Встроенная в Microsoft SQL Server система поиска — только для БД Microsoft SQL Server.
-
Система полнотекстового поиска Elasticsearch — для БД Microsoft SQL Server и PostgreSQL.
Одна база данных может быть настроена на работу только с одной системой полнотекстового поиска. К одному сервису полнотекстового индексирования могут быть подключены несколько баз данных Docsvision, индексируемых с помощью разных систем полнотекстового поиска.
Особенности работы полнотекстового поиска
-
Полнотекстовый поиск от Microsoft SQL работает по префиксу. Соответственно, будут найдены только строки, где слово начинается с части введённой в поисковую строку.
-
Добавленные недавно данные (например, созданная карточка) станут доступны для нахождения поиском в клиентской программе не сразу, а через какое-то время. Этот временной промежуток между добавлением данных и формированием индексов определяется периодом формирования очереди обработки и периодом обработки этой очереди сервисом полнотекстового индексирования. Очередь обработки выполняется задачей в SQL Server с периодичностью 5 минут.
-
Качество поиска в Elasticsearch и SQL Server может различаться из-за особенностей формирования индексов, учитывающих морфологию языка:
-
Для поиска в SQL Server может передаваться более короткая часть искомого слова, чем необходима Elasticsearch.
-
Результаты поиска в Elasticsearch могут содержать записи, не полностью совпадающие со словами поисковой фразы (менее жесткий поиск, чем в SQL Server).
-
В некоторых вариантах поисковой фразы Elasticsearch может не возвращать результаты.
-
-
Полнотекстовый поиск по содержимому файлов карточек поддерживается не для всех файлов.
-
Если вы настраиваете систему полнотекстового поиска, чтобы искать документы по номеру, выбирайте для индексации секцию Номера, а не поля Регистрационный номер, Исходящий номер в секции Основная информация.
В прочих карточках необходимо следовать схожей логике: проверять наличие похожей секции и при необходимости выбирать её.
Установка сервиса полнотекстового индексирования
-
Установите сервис полнотекстового индексирования, предварительно обновив индекс пакетов:
-
Astra Linux
-
РЕД ОС
sudo apt-get update sudo apt-get install docsvision-fulltextservice
$ sudo dnf install docsvision-fulltextservice
-
-
Все настройки сервиса полнотекстового индексирования хранятся в конфигурационном файле
appsettings.json
. Откройте конфигурационный файл в любом текстовом редакторе, напримерnano
:sudo nano /usr/lib/docsvision/fulltextservice/appsettings.json
-
Выполните необходимые настройки сервиса:
{ "DocsVision": { "Platform": { "Server": { "LogFile": "/var/log/docsvision/fulltextservice.log" (1) "Databases": { "alias": "CONNECTION-STRING" (2) } } } }, "DataProtectCertificateThumbprint": "thumbprint", (3) "SystemUserAccount": "account@domain.com", (4) "SystemUserPassword": "password" (5) }
1 Путь к файлу журнала полнотекстового поиска. 2 Строка подключения к индексируемой БД. 3 Отпечаток закрытого ключа шифрования SHA1.
Указывается без двоеточия, например,D8602179888DC8402B393F11DCA16A3376DDF879
, см. подробнее в документации по установке системы, раздел "Защита системной учётной записи".
Если шифровать пароль системной учётной записи не планируется, параметр можно удалить.4 Имя системной учётной записи Docsvision. Не рекомендуется авторизоваться на клиентских рабочих местах под системными учётными записями, т.к. это может привести к ошибкам в работе системы. 5 Пароль системной учётной записи рекомендуется хранить в зашифрованном виде. Подробнее про шифрование см. в документации по установке системы, раздел "Защита системной учётной записи". -
Запустите сервис полнотекстового поиска следующей командой:
$ sudo systemctl start dvfulltextservice