Estoy buscando una estructura de datos altamente eficiente para el almacenamiento de datos similar a la siguiente.
Etiquetas de identificación Order1 Order2 -------------------------- 1 1,2 1 1 2 2,5 2 3 3 1,7 4 7 4 6 3 0
Tengo que ser capaz de consultar esta estructura de tal manera que me daría una lista de todos los identificadores que contienen una expresión de etiquetas - el apoyo AND
y OR
y NOT
operaciones. P.ej. ((1 o 2) y no 7)
También necesito poder especificar el orden de los resultados (Order1 u Order2) y poder especificar las filas máximas devueltas con un desplazamiento opcional. El rendimiento para la obtención de los primeros 30-100 resultados es clave.
Finalmente, necesito una forma barata de buscar "relaciones de etiqueta", por ejemplo, quiero saber qué etiquetas "se relacionan" con las etiquetas (1 O 2) y con qué frecuencia. Significa qué etiquetas aparecen en el mismo conjunto que 1 O 2 ... ordenadas por frecuencia.
¿Alguna idea de qué estructura de datos (o conjunto de estructuras) sería altamente eficiente para este tipo de trabajo?
(Me gustaría usar esto como una prueba de concepto para rediseñar las páginas etiquetadas de la familia de sitios SE)