Представьте, что вы хотели сериализовать и десериализовать сообщения stackoverflow, включая их теги, как пространство максимально эффективно (в двоичном виде), но также и для производительности при выполнении поиска тегов. Есть ли хорошая структура данных для такого рода сценариев?Эффективная структура данных для тегов?
Stackoverflow имеет около 28532 различных тегов, вы можете создать таблицу со всеми тегами и назначить им целое число. Кроме того, вы можете сортировать их по частоте, чтобы самые распространенные теги имели самые низкие числа. Сохранение их просто как строка в формате «1 32 45» кажется немного неэффективным с точки зрения поиска и хранения.
Еще одна идея заключалась бы в сохранении тегов в виде переменной bitarray, которая привлекательна с точки зрения поиска и сериализации , Так как наиболее распространенные теги в первую очередь потенциально могут помещать теги в небольшой объем памяти.
Проблема была бы, конечно, в том, что необычные теги будут давать огромные битрейты. Есть ли какой-либо стандарт для «сжатия» битреймов для больших пространств 0? Или нужно использовать какую-либо другую структуру полностью?
EDIT
Я не ищу решение DB или раствор, где мне нужно держать целые таблицы в памяти, но структуру для фильтрации отдельных элементов
В этом сценарии нет БД, и вопрос о структуре, предположим, что сценарий оправдан;) – Homde 2010-11-23 09:09:57