Самый быстрый способ найти информацию в древовидной структуре данных. - PullRequest
0 голосов
/ 04 января 2012

Имеется древовидная структура, состоящая из 1..n вложенных узлов и представленная в виде набора связанных объектов сущностей, которые отображаются в БД с использованием JPA / Hibernate. И, учитывая ввод 100к-1м записей. Что было бы самым быстрым способом обрабатывать все записи по одной на этом дереве и блокировать соответствующую информацию для каждой записи из дерева. При поиске будут применяться различные правила фильтрации, и будет учитываться глубина узла.

Я понимаю, что, вероятно, нужно учесть много вещей, прежде чем обсуждать потенциальный подход к проблеме (например, древовидную структуру, какую информацию нужно искать и т. Д.). Тем не менее, я только ищу общее описание / руководство возможных подходов о том, как решать аналогичные задачи, и, возможно, несколько слов о том, каковы плюсы / минусы данного подхода.

Спасибо!

1 Ответ

0 голосов
/ 04 января 2012

Вероятно, можно читать каждую запись и помещать ее в Java-карту child -> parent (если каждая запись мала). Затем вы можете получить глубину данной сущности, следуя этим отношениям до корня, считая их по мере продвижения.

Недостатком является то, что он не масштабируется до нескольких миллиардов записей, но миллион, вероятно, в порядке. Если это для пакетной обработки, это должно быть достаточно быстро.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...