Настройка полнотекстового поиска
Полнотекстовый поиск в системе 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 может не возвращать результаты.
-
-
Полнотекстовый поиск по содержимому файлов карточек поддерживается не для всех файлов.
-
Если вы настраиваете систему полнотекстового поиска, чтобы искать документы по номеру, выбирайте для индексации секцию Номера, а не поля Регистрационный номер, Исходящий номер в секции Основная информация.
В прочих карточках необходимо следовать схожей логике: проверять наличие похожей секции и при необходимости выбирать её.
Установка сервиса полнотекстового индексирования на сервер под управлением Linux
-
Установите сервис полнотекстового индексирования командами:
-
Astra Linux / Альт Сервер
-
РЕД ОС / SberLinux
sudo apt-get update sudo apt-get install docsvision-fulltextservicesudo dnf makecache sudo dnf install docsvision-fulltextservice -
Установка сервиса полнотекстового индексирования на сервер под управлением Windows
-
Запустите инсталлятор модуля Платформа
Docsvision Platform server.msi, на шаге выбора компонентов выберите компонент "Cервис полнотекстового индексирования":
Рисунок 1. Выбор сервиса полнотекстового индексирования для установки
Настройка сервиса полнотекстового индексирования
Все настройки сервиса полнотекстового индексирования хранятся в конфигурационном файле
/usr/lib/docsvision/fulltextservice/appsettings.json для Linux и C:\Program Files\Docsvision\FullTextService\appsettings.json для Windows. Откройте конфигурационный файл в любом текстовом редакторе и выполните необходимые настройки сервиса:
{
"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 | Пароль системной учётной записи рекомендуется хранить в зашифрованном виде. Подробнее про шифрование см. в документации по настройке системы, раздел "Защита системной учётной записи". |
| После сохранения изменений в конфигурационном файле обязательно перезапустите службу Сервиса полнотекстового индексирования. В ОС Linux, в версии 6.1, сборка 853 и выше, служба запускается от имени УЗ Docsvision и не требует root-привилегий. |
В ОС Windows службы Docsvision по умолчанию запускаются от системной учётной записи NT AUTHORITY\Network Service. Любое значение, установленное администратором, сбрасывается на значение по умолчанию после обновления версии системы.
Чтобы язык интерфейса (например, названий этапов согласования) отображался корректно, убедитесь, что в параметрах языка Windows для системных учётных записей установлена нужная локаль. Учётной записи NT AUTHORITY\Network Service должны быть предоставлены все необходимые права.