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

1. Способ индексирования ссылок на документы базы данных, включающий:
получение документа в базу данных с сервера;
сохранение документа в базе данных;
извлечение поискового термина из документа, в котором поисковый термин связан со списком словопозиций;
разделение списка словопозиций на блоки, каждый из которых включает М ссылок базы данных;
сжатие каждого блока в сжатый блок посредством:
определения шаблона кодирования для каждого блока на основе значений всех М ссылок базы данных;
кодирования содержимого блока посредством шаблона кодирования;
нахождение записи таблицы шаблона кодирования, которая соответствует шаблону кодирования;
ввода указателя, соответствующего найденной записи таблицы шаблона кодирования, в заголовок блока.
2. Способ по п. 1, в котором список словопозиций включает в себя одну или несколько ссылок базы данных на документы, которые содержат поисковый термин.
3. Способ по п. 1, в котором в качестве М используют ненулевое положительное целое число, кратное 8.
4. Способ по п. 1, в котором сохранение документа в базу данных включает в себя выбор из добавления документа в базу данных, обновления документа в базе данных, перезаписи документа в базе данных и модификации документа в базе данных.
5. Способ по п. 1, в котором документы сохраняют в базе данных независимо от поисковых терминов, которые они содержат.
6. Способ по п. 1, в котором множество списков словопозиций соответствует множеству поисковых терминов, множество списков словопозиций формирует инвертированный индекс базы данных.
7. Способ по п. 6, в котором инвертированный индекс формирует двухмерную таблицу, в которой множество поисковых терминов является первым измерением, а списки словопозиций, соответствующие каждому из множества поисковых терминов, являются вторым измерением.
8. Способ по п. 6, в котором инвертированный индекс формирует непрерывный вектор, в котором за данным поисковым термином следует соответствующий список словопозиций, и в котором за списком словопозиций, который соответствует первому данному поисковому термину, идет следующий поисковый термин.
9. Способ по п. 1, в котором заголовок содержит один байт.
10. Способ по п. 1, в котором:
заголовок содержит один или несколько байт;
заранее определенное значение первого байта заголовка указывает на наличие второго байта заголовка;
два байта двухбайтового заголовка содержат заранее определенное значение и указатель, которые соответствуют найденной записи таблицы шаблонов кодирования.
11. Способ по п. 10, в котором заранее определенное значение включает в себя диапазон заранее определенных значений или флаг.
12. Способ по п. 1, в котором список словопозиций назначает монотонно возрастающие номера документов в базе данных.
13. Способ по п. 12, в котором:
первая ссылка базы данных в списке словопозиций представляет собой номер первого документа;
а следующая ссылка базы данных в списке словопозиций является дельта-ссылкой на основе разницы между номером первого документа и номером следующего документа.
14. Способ по п. 13, в котором набор последовательных ссылок базы данных в списке словопозиций включает в себя набор дельта-ссылок.
15. Способ по п. 14, в котором данная дельта-ссылка равна номеру данного документа с вычетом номера предыдущего документа.
16. Способ по п. 14, в котором данная дельта-ссылка равна номеру данного документа с вычетом номера предыдущего документа минус один.
17. Способ по п. 1, включающий в себя ввод в блок последовательности М усеченных ссылок, каждая усеченная ссылка включает в себя по меньшей мере b значимых бит соответствующей одной из М ссылок базы данных.
18. Способ по п. 17, в котором определение шаблона кодирования включает в себя:
b
определение числа n модификаций в соответствии с номером ссылок среди М ссылок базы данных, который больше или равен 2; и
если n>0:
определение для каждой из n модификаций значения vk модификации путем удаления b наименее значимых битов из соответствующей одной из М ссылок базы данных, которые больше или равны 2b, причем k находится в пределах от 1 до n, и
определение для каждой из n модификаций, позиции pk модификации, соответствующей позиции в диапазоне от 0 до М-1, из соответствующей одной из М ссылок базы данных, которая больше или равна 2b;
n
n
причем шаблон кодирования включает в себя b, n, p1 … p, v1 … v.
19. Способ по п. 18, в котором если n=0, шаблон кодирования включает в себя b, n.
20. Способ по п. 18, в котором М равно 4 и n равно 0 или равно 1.
21. Способ по п. 18, в котором осуществляют:
определение для каждого блока длины d модификации как длины, выраженной в битах, наиболее длинной из n модификаций;
n
n
причем шаблон кодирования включает в себя b, n, d, p1 … p, v1 … v.
n
n
22. Способ по п. 18, в котором заголовок включает в себя явное значение по меньшей мере одного из b, n, p1 … p, v1 … v.
23. Способ по п. 18, в котором определение шаблона кодирования для данного блока включает в себя:
определение трех наиболее длинных ссылок базы данных среди М ссылок базы данных данного блока; и
выбор значения b, достаточного для кодирования третьей по длине из М ссылок базы данных;
причем n не превышает 2.
24. Способ по п. 18, включающий в себя независимый выбор значения b для каждого блока.
25. Способ по п. 24, включающий в себя выбор значения b для каждого блока таким образом, чтобы n не превышало 2.
26. Способ по п. 24, включающий в себя независимый выбор значения b для данного блока в соответствии с наиболее длинной из М ссылок базы данных данного блока.
27. Способ по п. 18, в котором таблица шаблона включает в себя 256 записей таблицы шаблона кодирования для 256 соответствующих шаблонов кодирования.
28. Способ по п. 27, в котором:
первое подмножество 256 шаблонов кодирования включает в себя множество значений b; и
каждый шаблон кодирования первого подмножества определяет n=0.
29. Способ по п. 28, в котором ссылки базы данных блока, которые соответствуют шаблону кодирования первого подмножества, не являются сжатыми.
30. Способ по п. 28, в котором второе подмножество 256 шаблонов кодирования включает в себя наиболее часто используемые шаблоны кодирования.
31. Способ по п. 30, в котором большая часть шаблонов кодирования второго подмножества обладает меньшими значениями b, чем шаблоны кодирования первого подмножества.
32. Способ по п. 27, в котором 256 шаблонов кодирования включают в себя:
24 шаблона кодирования для 24 отдельных значений b в сочетании с n=0;
120 шаблонов кодирования включаются в себя b, n=1, p1, v1, каждый из 120 шаблонов кодирования обладает одной модификацией, одно из 5 значений b, одно из 3 отдельных значений модификаций и одну из 8 отдельных позиций модификаций; и
112 шаблонов кодирования содержат дескрипторы b, n=2, p1, р2, 1, 1, каждый из 112 шаблонов кодирования обладает двумя значениями модификации равными 1, одним из 4 различных значений b, причем р1 и р2 формируют 28 различных комбинаций из позиций модификации для двух модификаций.
33. Способ по п. 32, включающий в себя:
сортирование 256 шаблонов кодирования с позициями в порядке возрастания суммы b с длиной v; и
для данной суммы, сортирование шаблонов кодирования с позициями с возрастанием значений b;
и определение шаблона кодирования для данного блока включает в себя поиск шаблона кодирования путем просмотра отсортированных шаблонов кодирования, начиная с позиции, соответствующей длине наиболее длинной из М ссылок базы данных из данного блока.
34. Система базы данных для индексирования ссылок на документы базы данных, включающая:
ввод для получения документа с сервера;
базу данных для сохранения документа;
память, содержащую инвертированный индекс, включающий множество списков словопозиций, и содержащий таблицу шаблонов кодирования; и
процессор, функционально соединенный с вводом, с базой данных и памятью, и выполненный с возможностью:
извлечения поискового термина из документа, причем поисковый термин связан в памяти со списком словопозиций;
разделения в памяти списка словопозиций на блоки, каждый из которых включает М ссылок базы данных;
для каждого блока осуществления сжатия в сжатый блок посредством:
определения шаблона кодирования для блока на основе значений всех М ссылок базы данных;
кодирования содержимого блока посредством шаблона кодирования;
нахождения записи таблицы шаблона кодирования, соответствующей шаблону кодирования;
сохранения в памяти, указателя, указывающего на найденную запись таблицы шаблонов кодирования в заголовке блока.