Настройка полнотекстового поиска
Полнотекстовый поиск в системе 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 может не возвращать результаты.
-
-
Полнотекстовый поиск по содержимому файлов карточек поддерживается не для всех файлов.
-
Если вы настраиваете систему полнотекстового поиска, чтобы искать документы по номеру, выбирайте для индексации секцию Номера, а не поля Регистрационный номер, Исходящий номер в секции Основная информация.
В прочих карточках необходимо следовать схожей логике: проверять наличие похожей секции и при необходимости выбирать её.