НАЧАЛО >> Оглавление >> Общее описание >> Структура файлов БД ИРБИС64 >> Структура инверсного файла (*.ifp, *.l01, *.n01) и форматы записей >> Формат файлов N01 L01
Эти файлы содержат в себе индексы словаря поисковых терминов и состоят из записей (блоков) постоянной длины. Записи состоят из трех частей: лидера, справочника и ключей переменной длины.
Формат лидера записи:
| Число бит | Параметр |
|---|---|
| 16 | NUMBER – номер записи (начиная с 1; в N01 файле номер первой записи равен номеру корневой записи дерева); |
| 16 | PREV – номер предыдущей записи (если нет = -1); |
| 16 | NEXT– номер следующей записи (если нет = -1); |
| 16 | TERMS– число ключей в записи; |
| 16 | OFFSET_FREE– смещение на свободную позицию в записи (от начала записи); |
Справочник это таблица, определяющая поисковый термин. Каждый ключ переменной длины, который есть в записи, представлен в справочнике одним входом следующего формата:
| Число бит | Параметр |
|---|---|
| 16 | LEN – длина ключа; |
| 16 | OFFSET_KEY – смещение на ключ(от начала записи); |
| 16 | LOW – В N01 файле: ссылка на запись файла N01 (если LOW > 0) или файла L01 (если LOW < 0), у которых 1-й ключ равен данному. Положительное значение LOW определяет ветку индекса иерархически более низкого уровня. Самый низкий уровень индекса (LOW < 0) соответствует ссылкам на записи (листья) файла L01; В L01 файле: младшее слово 8 байтового смещения на ссылочную запись в IFP; |
| 16 | HIGH – В N01 файле: всегда 0; В L01 файле: старшее слово 8 байтового смещения на ссылочную запись в IFP |
Ключи переменной длины записываются начиная с конца записи, так что порядок входов, соответствующих им, определяется алфавитным порядком ключей. Сами ключи располагаются вплотную друг к другу без разделителей в порядке поступления на запись.
Длина справочника 12*TERMS.
Длина ключей = Размер записи – OFSET_FREE.
Размер свободного места в записи = 16+12*TERMS - длина ключей.
Размер записи зависит от реализации и может быть равен в байтах: 512; 1024; 2048; 4096.