Я ищу высокоэффективную структуру данных для хранения данных, аналогичную следующей.
Идентификационные метки Order1 Order2 -------------------------- 1 1,2 1 1 2 2,5 2 3 3 1,7 4 7 4 6 3 0
Мне нужно иметь возможность запрашивать эту структуру таким образом, чтобы она выдала мне список всех идентификаторов, содержащих выражение тегов - поддержка AND
и OR
и NOT
операции. Например. ((1 или 2) а не 7)
Мне также нужно иметь возможность указать порядок результатов (Order1 или Order2) и указать максимальное количество строк, возвращаемых с необязательным смещением. Производительность для получения первых 30-100 результатов является ключевой.
Наконец, мне нужен дешевый способ поиска «отношений тегов», например, я хочу знать, какие теги «связаны» с тегами (1 ИЛИ 2) и с какой частотой. Это означает, что теги появляются в том же наборе, что и 1 ИЛИ 2 ... упорядоченные по частоте.
Любая идея о том, какая структура данных (или набор структур) будет очень эффективной для такого рода работы?
(Я хотел бы использовать это в качестве доказательства концепции для редизайна тегированных страниц семейства сайтов SE)