Формат файлов N01 L01

Navigation:  TCP/IP Сервер БД ИРБИС64 > Структура файлов БД ИРБИС64 > Структура инверсного файла и форматы записей >

Формат файлов N01 L01

Previous pageReturn to chapter overviewNext page

Файлы N01 и L01 содержат  в себе индексы словаря поисковых терминов и состоят из записей (блоков) постоянной длины. Записи состоят из трех частей: лидера, справочника и ключей переменной длины.

 

Формат лидера записи

Число бит                Параметр

32NUMBER – номер записи(начиная с 1; в N01 файле номер первой записи равен номеру корневой записи дерева);
32PREV – номер предыдущей записи(если нет = -1);
32NEXT – номер следующей записи(если нет = -1);

16                        TERMS – число ключей в записи;

16OFFSET_FREE – смещение на свободную позицию в записи (от начала записи);

 

Формат справочника

 

На заметку:

Справочник это таблица, определяющая поисковый термин.

 

Каждый ключ переменной длины, который есть в записи, представлен в справочнике одним входом следующего формата:

 

Число бит        Параметр

 16        LEN – длина ключа;                

16OFFSET_KEY – смещение на ключ(от начала записи);
32LOW

В N01 файле:

ссылка на запись файла N01 (если LOW > 0) или файла L01

(если LOW < 0), у которых 1-й ключ равен данному.

Положительное значение LOW определяет ветку индекса иерархически более низкого уровня. Самый низкий уровень индекса (LOW < 0) соответствует ссылкам на записи (листья) файла L01;

В L01 файле:

 младшее слово 8 байтового смещения на ссылочную запись в IFP;

32HIGH

В N01 файле:

всегда 0;

В L01 файле:

старшее слово 8 байтового смещения на ссылочную запись в IFP

 

Ключи переменной длины

записываются начиная с конца записи, так что

 

На заметку:

порядок входов, соответствующих им, определяется алфавитным порядком ключей

 

Сами ключи располагаются вплотную друг к другу без разделителей в порядке поступления на запись.

 

Cхематически запись файлов N01 L01может быть представлена в виде рис.

Cхематически запись файлов N01 L01может быть представлена в виде рис.

Длина справочника 12*TERMS.

Длина ключей = Размер записи – OFSET_FREE.

Размер свободного места в записи = 16+12*TERMS - длина ключей.

Размер записи зависит от реализации и может быть равен в байтах:

512 ; 1024 ; 2048 ; 4096.

 


См. также:

Структура инверсного файла и форматы записей