Estou procurando uma estrutura de dados altamente eficiente para armazenamento de dados semelhante à seguinte.
Tags de identificação Pedido1 Pedido2 -------------------------- 1 1,2 1 1 2 2,5 2 3 3 1,7 4 7 4 6 3 0
Eu preciso ser capaz de consultar essa estrutura de tal forma a que ele iria me dar uma lista de todos os ids contendo uma expressão de marcas - apoiar AND
e OR
e NOT
operações. Por exemplo. ((1 ou 2) e não 7)
Também preciso especificar a ordem dos resultados (Pedido1 ou Pedido2) e especificar o máximo de linhas retornadas com um deslocamento opcional. O desempenho para a busca dos primeiros 30-100 resultados é fundamental.
Por fim, preciso de uma maneira barata de pesquisar "relações de tags". Por exemplo, quero saber quais tags "se relacionam" com tags (1 OU 2) e com que frequência. Significado de quais tags aparecem no mesmo conjunto que 1 OU 2 ... ordenadas por frequência.
Alguma idéia de que estrutura de dados (ou conjunto de estruturas) seria altamente eficiente para esse tipo de trabalho?
(Gostaria de usar isso como uma prova de conceito para redesenhar as páginas marcadas da família de sites SE)