СПОСОБ И СИСТЕМА БАЗЫ ДАННЫХ ДЛЯ НАХОЖДЕНИЯ ДОКУМЕНТОВ

1. Способ нахождения документов базы данных, которые содержат поисковые термины, включающий:
получение поискового термина в базу данных от клиента, поисковый термин связан со списком словопозиций, который был разделен на блоки, и каждый блок содержит заголовок и M усеченных ссылок; причем каждый блок является сжатым блоком посредством сжатия содержимого блока с использованием шаблона кодирования, определенного на основе значения M усеченных ссылок в каждом блоке;
считывание указателя из заголовка текущего блока списка словопозиций;
использование указателя для извлечения протокола декодирования из таблицы протоколов декодирования, причем протокол декодирования определяет шаблон кодирования для конкретного блока.
2. Способ по п. 1, в котором список словопозиций включает в себя одну или несколько ссылок базы данных на документы, которые содержат поисковый термин.
3. Способ по п. 1, в котором M является ненулевым положительным целым числом, кратным 8.
4. Способ по п. 1, в котором множество списков словопозиций, соответствует множеству поисковых терминов, множество списков словопозиций формирует инвертированный индекс базы данных.
5. Способ по п. 1, в котором считывание указателя из заголовка текущего блока списка словопозиций включает в себя, для первого блока, считывание начального заголовка списка словопозиций.
6. Способ по п. 1, в котором:
заголовок может содержать один или несколько байт;
заранее определенное значение первого байта заголовка указывает на наличие второго байта заголовка; и
два байта двухбайтного заголовка включают в себя заранее определенное значение и указатель.
7. Способ по п. 6, в котором заранее определенное значение включат в себя диапазон заранее определенных значений или флаг.
8. Способ по п. 1, в котором список словопозиций назначает монотонно возрастающие номера документов в базе данных.
9. Способ по п. 8, в котором:
первая ссылка базы данных в списке словопозиций представляет собой номер первого документа; и
следующая ссылка базы данных в списке словопозиций представляет собой дельта-ссылку на основе разницы между номером первого документа и номером следующего документа.
10. Способ по п. 9, в котором набор последовательных ссылок базы данных в списке словопозиций включает в себя набор дельта-ссылок.
11. Способ по п. 10, в котором данная дельта-ссылка равна номеру данного документа с вычетом номера предыдущего документа.
12. Способ по п. 10, в котором данная дельта-ссылка равна номеру данного документа с вычетом номера предыдущего документа минус один.
13. Способ по п. 1, в котором шаблон кодирования текущего блока включает в себя: базовую длину b, относящуюся к M усеченных ссылок в текущем блоке;
число n модификаций в текущем блоке;
если n>0, одно или несколько значений vk модификации текущего блока, причем k находится в пределах от 1 до n;
если n>0, одно или несколько позиций pk модификации в текущем блоке, в котором pk находится в пределах от 0 до М-1.
14. Способ по п. 13, в котором таблица протокола декодирования включает в себя таблицу дескрипторов, которая определяет b, n, р1…pn, v1…vn для множества шаблонов кодирования.
15. Способ по п. 13, в котором длина текущего блока определяется длиной заголовка и шаблоном кодирования.
16. Способ по п. 13, включающий в себя:
сжатие текущего блока путем:
считывания в текущем блоке, b⋅М бит, которые содержат M усеченных ссылок, причем М-n из M усеченных ссылок являются ссылками базы данных; и
b
-той
если n>0, для каждой модификации от k=1 до n, определение расширенного значения модификации как vk⋅2 и добавление расширенного значения модификации к pk из M усеченных ссылок, пронумерованных от 0 до М-1 для предоставления η дополнительных ссылок базы данных.
17. Способ по п. 13, включающий в себя:
считывание следующего указателя из следующего заголовка следующего блока списка словопозиций; и
использование следующего заголовка для: извлечения следующего протокола декодирования; и распаковки следующего текущего блока;
причем полный список ссылок базы данных на документы из базы данных, которые содержат поисковый термин, получают путем считывания полного списка словопозиций.
18. Способ по п. 13, в котором протокол декодирования включает в себя кодовые инструкции для выполнения этапа распаковки текущего блока с помощью b, n, p1…pn, v1…vn.
19. Способ по п. 18, в котором отдельный набор кодовых инструкций определяется для каждого отдельного шаблона кодирования.
20. Способ по п. 18, в котором таблица протокола декодирования включает в себя кодовые инструкции.
21. Способ по п. 18, в котором таблица протокола декодирования включает в себя таблицу
ссылок на кодовые инструкции.
22. Способ по п. 18, включающий в себя:
определение 2 массивов, каждый массив включает в себя M полей данных равного размера;
ввод M усеченных ссылок в M полей данных первого массива;
заполнение M полей данных второго массива нулевыми значениями;
k
если n>0, для каждой модификации от k=1 до n, ввод n-го расширенного значения модификации в p-ое поле данных второго массива, причем M полей данных второго массива пронумерованы от 0 до М-1;
добавление значений второго массива к значениям первого массива; и
считывание M ссылок базы данных из первого массива.
23. Способ по п. 22, в котором поля данных первого и второго массивов каждое содержит L байт.
L⋅8
24. Способ по п. 23, в котором данный блок, который обладает ссылкой базы данных больше 2-1, обладает шаблоном кодирования, включающим в себя b>L⋅8 и n=0.
25. Система базы данных для нахождения документов, которые содержат поисковые термины, включающая:
базу данных для сохранения множества документов;
память, содержащую:
таблицу протоколов декодирования; и
инвертированный индекс, включающий множество списков словопозиций, причем каждый список словопозиций разделен на блоки, каждый из которых содержит заголовок и M усеченных ссылок; каждый блок является сжатым блоком посредством сжатия содержимого каждого блока с использованием шаблона кодирования, определенного для каждого блока на основе значения M усеченных ссылок в каждом блоке;
ввод для получения поискового термина от клиента; и
процессор, функционально соединенный с вводом, с базой данных и памятью, и выполненный с возможностью:
выбора в памяти списка словопозиций, связанного с поисковым термином;
считывания указателя из заголовка текущего блока списка словопозиций; и
использования указателя для извлечения протокола декодирования из таблицы протоколов декодирования, причем протокол декодирования определяет шаблон кодирования для текущего блока.