НАЧАЛО >> Нативный провайдер данных DP_Irbis64Native >> Полнотекстовый поиск📄 Скачать в DOCX
Для баз ИРБИС64+ DP_Irbis64Native поддерживает работу с полнотекстовым пространством --TEXT. Такое пространство хранит термины и postings, связанные с основными библиографическими или служебными записями.
При открытии основной базы провайдер проверяет, можно ли открыть связанное пространство <имя_базы>--TEXT. Пути для него формируются по правилам .par и каталога данных. Если полнотекстовое пространство доступно, оно открывается отдельным внутренним объектом.
Полнотекстовое пространство использует собственный набор файлов словаря и postings. При построении карты путей для <имя_базы>--TEXT провайдер направляет N01, L01, N02, L02, IFP, MST, XRF и служебные части в каталог этого пространства. Поэтому файлы N02 и L02 в документации нужно понимать как вторую пару файлов словаря: по структуре они аналогичны N01 и L01, но относятся к дополнительному индексу, а не к основному словарю обычной базы.
Провайдер читает параметры полнотекстового поиска:
PREFIX_EK_TO_FT - связь основного каталожного префикса с полнотекстовым индексом;FullText/BIBCARD_FullText_Search_PREFIX - поисковый префикс для карточки документа;.par и пути --TEXT-пространства;В текущей реализации FullTextSearch обращается к полнотекстовому пространству напрямую. Параметры префиксов используются как часть настроек окружения и должны соответствовать правилам конкретной базы, но сама функция поиска не подставляет их автоматически в запрос.
FullTextSearch получает поисковое выражение, обращается к полнотекстовому пространству и возвращает связанные MFN. Затем прикладной модуль может читать и форматировать записи основной базы.
Типовой сценарий:
--TEXT;После изменения записи или связанного текста полнотекстовый индекс должен быть актуализирован. Для этого используется внутренняя актуализация полнотекстового пространства. Если основной индекс обновлен, а полнотекстовый нет, запись может находиться по обычным префиксам и не находиться по полнотекстовому запросу.
Если полнотекстовый поиск не возвращает ожидаемый результат, нужно последовательно проверить:
--TEXT;.par;