Файлы базы и пути


НАЧАЛО >> Нативный провайдер данных DP_Irbis64Native >> Файлы базы и пути📄 Скачать в DOCX


DP_Irbis64Native должен находить файлы в тех же местах, где их ожидает ИРБИС64. Для этого провайдер читает irbis_server.ini, .par-файлы баз и параметры запроса к файловым операциям.

1. Источники путей

Пути формируются из нескольких уровней:

Провайдер нормализует пути, учитывает особенности Windows и Linux и приводит имена файлов к виду, с которым работает файловая система.

2. Карта Apath

Apath Назначение
0 Системный каталог окружения.
1 Каталог данных.
2 Каталог MST/XRF базы.
3 Каталог словаря и обратного индекса.
10 Каталог меню базы или депозитарий.
11 Каталог внешних документов базы.
13 Прямой или абсолютный путь.

Одна и та же файловая операция может использовать разные пути в зависимости от типа файла. Например, рабочий лист и формат могут находиться в каталоге меню, а внешние документы - в отдельном каталоге, указанном в .par.

3. Операции с файлами

Провайдер поддерживает стандартные операции:

Эти функции используются при работе с форматами, меню, рабочими листами, служебными настройками, депозитарием и административными сценариями.

4. Депозитарий

Депозитарий используется для хранения файлов, которые должны перекрывать или дополнять базовые файлы окружения. DP_Irbis64Native читает настройку DepositPriority, но текущий порядок поиска файлов определяется логикой вычисления пути в провайдере.

Для Apath = 10 провайдер сначала вычисляет путь к каталогу меню базы. Если файл там не найден, используется депозитарий. Это удобно для переопределения форматов, меню и других настраиваемых ресурсов без изменения исходного комплекта базы.

5. .par-файл базы

.par-файл задает физическое расположение основных частей базы: MST, XRF, CNT, словаря, обратного индекса, меню, внешних документов и служебных каталогов. При открытии базы провайдер разбирает .par, разрешает относительные пути относительно системного каталога и сохраняет результат в контексте базы.

Для словаря в .par задаются две пары путей: N01/L01 и N02/L02. Пара N01/L01 указывает на основной B-деревный словарь базы: N01 хранит индексные узлы, L01 - листовые блоки с терминами. Пара N02/L02 задает второе словарное пространство того же типа. В ИРБИС64/64+ оно используется для связанных индексов, в том числе для полнотекстового пространства --TEXT, и хранит такие же по структуре индексные и листовые блоки, но относится к другому набору словарных данных.

В текущей реализации DP_Irbis64Native при открытии обычной базы основной поиск работает с файлами N01/L01 и IFP. Пути N02/L02 также читаются из .par и сохраняются в контексте базы, чтобы модуль корректно знал полную файловую карту ИРБИС64. Для полнотекстового пространства провайдер строит отдельную карту путей <имя_базы>--TEXT; в ней обе пары N01/L01 и N02/L02 направляются в каталог полнотекстового индекса.

Если .par отсутствует или содержит некорректные пути, база не может быть открыта корректно.