НАЧАЛО >> TCP/IP сервер ИРБИС 64/128 >> Структура файлов БД ИРБИС64 >> Структура инверсного файла и форматы записей >> Формат файла IFP
Файл содержит список ссылок для каждого термина словаря. Список ссылок может быть представлен в 2-х различных форматах. Выбор формата размещения ссылок осуществляется при загрузке словаря из файла Lk1 (этот файл формируется после отбора и сортировки терминов) в зависимости от общего числа ссылок для данного термина. Обыкновенный формат – это заголовок блока и набор упорядоченных ссылок. По превышении определенного числа ссылок (MIN_POSTINGS_IN_BLOCK - в данной реализации 256) формат включает специальный блок и набор блоков обыкновенного формата размер которых определяется по следующей схеме:
блоки 4,8,16,32 Kb для общего числа ссылок соответственно 256-32000; 32000-64000; 64000-128000; 128000 и более.
Такая схема оптимизирует работу с диском в процессе инвертирования записи в базах данных, характеризующихся большим количеством ссылок на термин.
Обыкновенный формат записи IFP
Запись состоит из заголовка и упорядоченного набора ссылок.
Ссылка имеет следующий формат:
Число бит |
Параметр |
PMFN– номер записи; |
|
PTAG– идентификатор поля назначенный при отборе терминов в словарь; |
|
POCC– номер повторения; |
|
32 |
PCNT– номер термина в поле. |
Заголовок имеет следующий формат:
Число бит |
Параметр |
LOW– младшее слово смещения на следующую запись(если нет 0); |
|
32 |
HIGH– старшее слово смещения на следующую запись(если нет 0); |
TOTP– общее число ссылок для данного термина(только в первой записи) ;число ссылок в данном блоке(в следующих записях); |
|
SEGP- число ссылок в данном блоке; |
|
SEGC– вместимость записи в ссылках. |
Признак последнего блока – LOW=HIGH= -1
Специальный формат записи IFP
В этом случае первой записью является специальный блок, который представляет собой заголовок (обыкновенного формата), в котором смещения имеют специальные значения = -1001, и набор входов следующего формата:
Число бит |
Параметр |
POSTING– 1-я ссылка из записи обыкновенного формата; |
|
LOW– младшее слово смещения на следующую запись(если нет 0); |
|
32 |
HIGH– младшее слово смещения на следующую запись(если нет 0); |
Число входов кратно 4. Записи, на которые ссылается специальный блок связаны между собой как описано выше. Причем общее количество ссылок для данного термина сохраняется только в специальном блоке.
Модификация записей файла IFP
При выполнении актуализации инверсного файла могут создаваться новые дополнительные записи при добавлении новых ссылок. В этом случае создается новая запись размером равным общему количеству ссылок, если нет специального блока, и размером, равным количеству ссылок в данной записи, если есть. Новая запись создается таким образом, чтобы не нарушалась возрастающая последовательность следования ссылок. Новая запись связывается с существующими через поле NXT_, ссылки распределяются равномерно между старой и новой записью.