Формат файла IFP


НАЧАЛО >> 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_, ссылки распределяются равномерно между старой и новой записью.