СПОСОБ ФОРМИРОВАНИЯ ИЕРАРХИЧЕСКОЙ СТРУКТУРЫ ДАННЫХ, СПОСОБ ПОИСКА ДАННЫХ С ПОМОЩЬЮ ИЕРАРХИЧЕСКОЙ СТРУКТУРЫ ДАННЫХ, СЕРВЕР И ПОСТОЯННЫЙ МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ

1. Способ формирования иерархической структуры данных, выполняемый на сервере и включающий:
определение множества искомых элементов данных, содержащий набор дескрипторов, каждый из которых связан с типом данных, отличным от типов данных других дескрипторов в наборе дескрипторов;
определение иерархической структуры данных, обладающей первым и вторым уровнями, причем на первом уровне расположен родительский узел, а на втором уровне расположен первый дочерний узел и второй дочерний узел, зависящие от родительского узла;
при этом родительский узел предназначен для хранения первого дескриптора из набора дескрипторов, первый дескриптор связан с одним или несколькими элементами данных из множества элементов данных, и дескриптор относится к первому типу данных; и
каждый из первого дочернего узла и второго дочернего узла предназначен для хранения соответствующего второго дескриптора из соответствующего одного из одного или нескольких элементов данных; соответствующий второй дескриптор относится к тому же второму типу данных, и этот второй тип данных отличается от первого типа данных.
2. Способ по п. 1, в котором родительский узел представляет собой первый родительский узел, а при определении иерархической структуры данных включает определение второго родительского узла для сохранения дескриптора из набора дескрипторов; при этом дескриптор отличается от дескриптора первого родительского узла; и оба дескриптора относятся к одному и тому же первому типу данных.
3. Способ по п. 2, в котором определение иерархической структуры данных включает определение третьего дочернего узла и четвертого дочернего узла, оба из которых зависят от второго родительского узла; при этом каждый из третьего родительского узла и четвертого родительского узла предназначен для хранения соответствующего дескриптора других элементов данных; причем соответствующий другой дескриптор относится к тому же второму типу данных.
4. Способ по п. 1, в котором определение иерархической структуры данных включает определение третьего уровня, на котором размещен первый дочерний подузел и второй дочерний подузел, оба из которых зависят от первого дочернего узла; каждый из первого дочернего подузла и второго дочернего подузла предназначен для хранения соответствующего третьего дескриптора, который соответствует по меньшей мере одному элементу данных; соответствующий третий дескриптор относится к тому же третьему типу данных, отличному от первого и второго типа данных.
5. Способ по п. 1, в котором осуществляют определение иерархической структуры данных в ответ на получение указания на элемент данных из множества элементов данных, причем элемент данных индексируют в иерархической структуре данных, элемент данных связан с набором дескрипторов, а набор дескрипторов обладает первым дескриптором и вторым дескриптором.
6. Способ по п. 5, в котором, в ответ на получение указания на элемент данных, связанный с первым дескриптором, который относится к первому типу данных, определение включает идентификацию родительского узла на первом уровне иерархической структуры данных.
7. Способ по п. 6, в котором, в ответ на получение указания на элемент данных, связанный со вторым дескриптором, который относится ко второму типу данных, определение включает в себя идентификацию первого дочернего узла на втором уровне иерархической структуры данных.
8. Способ по п. 6, в котором элемент данных представляет собой первый элемент данных и в котором, в ответ на получение указания на второй элемент данных, связанный со вторым дескриптором, который относится ко второму типу данных, второй дескриптор второго элемента данных отличается от второго дескриптора первого элемента данных, а определение включает в себя идентификацию второго дочернего узла на втором уровне иерархической структуры данных.
9. Способ по п. 6, в котором родительский узел представляет собой первый родительский узел и в котором, в ответ на получение указания на второй элемент данных, связанный с дескриптором, оба дескриптора относятся к одному типу данных, определение включает в себя идентификацию второго родительского узла на первом уровне иерархической структуры данных.
10. Способ по п. 5, в котором, в ответ на получение указания на элемент данных, связанный с первым дескриптором, который относится к первому типу данных, и вторым дескриптором, который относится ко второму типу данных, и третьим дескриптором, который относится к третьему типу данных, определение включает в себя идентификацию первого листового узла, соответствующего первому дочернему узлу; причем первый листовой узел предназначен для хранения третьего дескриптора.
11. Способ по п. 10, в котором элемент данных представляет собой первый элемент данных и в котором, в ответ на получение указания на второй элемент данный, связанный с тем же первым дескриптором и тем же вторым дескриптором, что и первый элемент данных, но другой третий дескриптор того же третьего типа данных, определение включает установление связи второго элемента данных с первым листовым узлом.
12. Способ по п. 11, в котором обновляют первый листовой узел с помощью статистического снимка третьего дескриптора первого элемента данных и отличающийся третий дескриптор второго элемента данных.
13. Способ по п. 12, в котором статистический снимок включает в себя (i) ряд элементов данных, связанных с первым листовым узлом, (ii) указание на минимальное значение одного из третьих дескрипторов первого элемента данных и второго элемента данных; и (iii) указание на максимальное значение другого третьего дескриптора первого элемента данных и второго элемента данных.
14. Способ по п. 11, в котором, в ответ на получение указания на третий элемент данных, связанный с тем же первым дескриптором и тем же вторым дескриптором, что и первый и второй элементы данных, но другой третий дескриптор того же третьего типа данных, определение включает в себя связь третьего элемента данных с первым листовым узлом.
15. Способ по п. 14, в котором обновляют статистический снимок с помощью информации, связанной с третьим элементом данных.
16. Способ по п. 15, в котором этап обновления включает в себя: (i) обновление счетчика с помощью ряда элементов данных, (ii) определение того, необходимо ли обновить указание на минимальное значение и максимальное значение на основе третьего дескриптора третьего элемента данных.
17. Способ по п. 16, в котором определяют необходимость обновления указания на минимальное значение и максимальное значение посредством проверки расположения значения третьего дескриптора в диапазоне между минимальным и максимальным значениями.
18. Способ по п. 17, в котором при определении нахождения третьего дескриптора за пределами диапазона между минимальным и максимальным значениями изменяют соответствующее минимальное или максимальное значение на значение третьего дескриптора третьего элемента данных.
19. Способ по п. 10, в котором элемент данных представляет собой первый элемент данных, и в ответ на получение указания на четвертый элемент данных, связанный с тем же первым дескриптором и вторым дескриптором, который относится к тому же второму типу данных, но отличается от второго дескриптора первого элемента данных, и третьим дескриптором, который относится к тому же третьему типу данных, определение включает в себя идентификацию второго листового узла, соответствующего второму дочернему узлу; при этом второй листовой узел предназначен для хранения третьего дескриптора, соответствующего четвертому элементу данных.
20. Способ поиска данных с помощью иерархической структуры данных, определенной выполнением способа по любому из пп. 10-19, включающий:
получение поискового запроса, обладающего поисковым параметром; связанным с типом данных;
обнаружение в иерархической структуре данных ветви, содержащей по меньшей мере один узел, связанный с дескриптором, относящийся к тому же типу данных и совпадающий с поисковым параметром;
получение доступа к листовому узлу, обладающему по меньшей мере одним элементом данных, соответствующий по меньшей мере дескриптору;
извлечение по меньшей мере одного элемента данных из листового узла.
21. Способ по п. 20, в котором по меньшей мере один узел является родительским узлом и в котором ветвь содержит дочерний узел, зависящий от родительского узла, причем дочерний узел соответствует второму дескриптору; и в котором поисковый запрос включает в себя второй параметр, относящийся ко второму типу данных, отличному от первого типа данных; и в котором обнаружение выполняется в ответ на совпадение второго дескриптора со вторым поисковым параметром.
22. Способ по п. 21, в котором дочерний узел является первым дочерним узлом и в котором ветвь содержит второй дочерний узел, зависящий от родительского узла, причем второй дочерний узел соответствует третьему дескриптору; и в котором поисковый запрос включает в себя второй параметр, относящийся ко второму типу данных, отличному от первого типа данных; и в котором второй дескриптор совпадает со вторым поисковым параметром, а третий дескриптор не совпадает с поисковым параметром; и в котором обнаружение включает в себя обнаружение ветви, содержащей первый дочерний узел и не содержащей второй дочерний узел.
23. Способ по п. 20, в котором поисковый параметр представляет собой первый поисковый параметр, относящийся к первому типу данных, и в котором в ответ на получение указания на поисковый запрос, обладающий первым параметром и вторым параметром, относящимися ко второму типу данных, отличных от первого типа данных, поиск включает в себя:
(i) обнаружение второй ветви, содержащей первый родительский узел и второй дочерний узел, зависящий от первого родительского узла; причем первый родительский узел соответствует первому дескриптору, совпадающему с первым поисковым параметром; второй дочерний узел соответствует второму дескриптору, совпадающему со вторым поисковым параметром;
(ii) получение доступа к первому листовому узлу, соответствующему первой ветви;
(iii) извлечение по меньшей мере одного элемента данных из второго листового узла, соответствующего первому дескриптору и второму дескриптору, оба из которых соответствуют поисковому запросу.
24. Способ по п. 21, в котором, в ответ на получение указания на поисковый запрос, поиск включает в себя извлечение статистического снимка из первого листового узла с рядом элементов данных в первом листовом узле, минимальное значение и максимальное значение третьего дескриптора.
25. Способ по п. 22, в котором, в ответ на получение указания на поисковый запрос, поиск включает в себя извлечение статистического снимка из второго листового узла с рядом элементов данных во втором листовом узле, минимальное значение и максимальное значение третьего дескриптора.
26. Способ по п. 23, в котором, в ответ на получение указания на поисковый запрос, поиск включает в себя извлечение статистического снимка из первого листового узла и второго листового узла с рядами элементов данных в первом листовом узле и втором листовом узле, минимальное значение и максимальное значение третьего дескриптора в первом листовом узле, минимальное значение и максимальное значение третьего дескриптора во втором узле.
27. Способ по п. 26, в котором определяют общее число элементов данных в первом и втором листовом узлах, минимальное значение третьего дескриптора во всех элементах данных первого и второго листовых узлов, максимальное значение третьего дескриптора во всех элементах данных первого и второго листовых узлов.
28. Сервер, выполненный с возможностью создавать иерархическую структуру данных, содержащий постоянный носитель для хранения машиночитаемых кодов, выполнение которых позволяет осуществлять:
определение множества искомых элементов данных, множество элементов данных содержит набор дескрипторов, каждый из которых связан с типом данных, отличных от типов данных других дескрипторов в наборе дескрипторов;
определение иерархической структуры данных, обладающей первым и вторым уровнями, причем на первом уровне расположен родительский узел, а на втором уровне расположен первый дочерний узел и второй дочерний узел, оба из которых зависят от родительского узла;
родительский узел предназначен для хранения первого дескриптора из набора дескрипторов, первый дескриптор связан с одним или несколькими элементами данных из множества элементов данных, и дескриптор относится к первому типу данных; и
каждый из первого дочернего узла и второго дочернего узла предназначен для хранения соответствующего второго дескриптора из соответствующего одного из одного или нескольких элементов данных; соответствующий второй дескриптор относится к тому же второму типу данных, и этот второй тип данных отличается от первого типа данных.
29. Постоянный машиночитаемый носитель, содержащий машиночитаемые коды, выполнение которых сервером позволяет ему осуществлять:
определение множества искомых элементов данных, множество элементов данных содержит набор дескрипторов, каждый из которых связан с типом данных, отличных от типов данных других дескрипторов в наборе дескрипторов;
определение иерархической структуры данных, обладающей первым и вторым уровнями, причем на первом уровне расположен родительский узел, а на втором уровне расположен первый дочерний узел и второй дочерний узел, оба из которых зависят от родительского узла;
родительский узел предназначен для хранения первого дескриптора из набора дескрипторов, первый дескриптор связан с одним или несколькими элементами данных из множества элементов данных, и дескриптор относится к первому типу данных; и
каждый из первого дочернего узла и второго дочернего узла предназначен для хранения соответствующего второго дескриптора из соответствующего одного из одного или нескольких элементов данных; соответствующий второй дескриптор относится к тому же второму типу данных, и этот второй тип данных отличается от первого типа данных.