高速タグ検索のアルゴリズム
問題は次のとおりです。 単純なエンティティEのセットがあり、各エンティティにはタグTのセットが添付されています。各エンティティには、任意の数のタグを付けることができます。エンティティの総数は1億に近く、タグの総数は約5000です。 したがって、初期データは次のようになります。 E1 - T1, T2, T3, ... Tn E2 - T1, T5, T100, ... Tk .. Ez - T10, T12, ... Tl この初期データが更新されることはほとんどありません。 どういうわけか、私のアプリは次のようなタグで論理式を生成します。 T1&T2&T3 | (T5&!T6) 私がする必要があるのは、与えられた表現に一致するエンティティの数を計算することです(注-エンティティではなく、単に数)。もちろん、これは完全に正確ではありません。 私が今持っているのは、単一のスレッドで5〜10秒の実行時間を与える単純なメモリ内テーブル検索です。 私は興味がありますが、このようなものを処理する効率的な方法はありますか?どのアプローチをお勧めしますか?このための一般的なアルゴリズムやデータ構造はありますか? 更新 要求に応じて少し説明します。 Tオブジェクトは実際には比較的短い定数文字列です。しかし、実際には問題ではありません-常にいくつかのIDを割り当てて整数を操作できます。 間違いなくソートできます。