Ich suche eine hocheffiziente Datenstruktur zur Speicherung von Daten ähnlich der folgenden.
ID Tags Order1 Order2 -------------------------- 1 1,2 1 1 2 2,5 2 3 3 1,7 4 7 4 6 3 0
Ich muss in der Lage sein, diese Struktur so abzufragen, dass ich eine Liste aller IDs bekomme, die einen Ausdruck von Tags enthalten - unterstützende AND
und OR
und NOT
Operationen. Z.B. ((1 oder 2) und nicht 7)
Ich muss auch in der Lage sein, die Reihenfolge der Ergebnisse (Reihenfolge1 oder Reihenfolge2) anzugeben und die maximalen Zeilen anzugeben, die mit einem optionalen Versatz zurückgegeben werden. Die Leistung für den Abruf der ersten 30-100 Ergebnisse ist der Schlüssel.
Schließlich brauche ich eine kostengünstige Möglichkeit, um nach "Tag-Beziehungen" zu suchen. Ich möchte beispielsweise wissen, welche Tags sich auf Tags (1 ODER 2) beziehen und in welcher Häufigkeit. Dies bedeutet, welche Tags im selben Satz wie 1 ODER 2 ... nach Häufigkeit geordnet erscheinen.
Gibt es eine Vorstellung davon, welche Datenstruktur (oder welcher Satz von Strukturen) für diese Art von Arbeit hocheffizient wäre?
(Ich möchte dies als Proof of Concept für die Neugestaltung der markierten Seiten der SE-Site-Familie verwenden.)