メモリ内にいくつかの中規模のデータ セットがあり、それらから情報をすばやくフィルター処理して検索できるようにする必要があります。データセットは十分に小さいので、エントリが必要になるたびにデータベースにアクセスしてパフォーマンスに影響を与えたくありませんが、何らかの方法でデータにインデックスを付ける必要があるほど十分に大きいです。
現在、索引付けのために 1 つ以上の辞書を持つ POCO オブジェクトを使用しています。これは、特定のキーで何かを見つける必要がある場合にうまく機能しますが、そうでない場合もあります。例として、特定の日時範囲内でエントリを見つける必要があることがよくあります。また、最低価格のエントリが必要になる場合もあります。ほとんどの場合、クエリはいくつかの単純なキーと 1 つまたは 2 つの他のフィールドを同時に調べます。
これに役立つツール、製品、ライブラリ (.NET フレームワークを対象とする) はありますか? それとも、ほこりだらけの古いアルゴリズムの本を手に取って、検索ツリーを調べ始める必要がありますか?
例:
旅行
- 出発コード
- 宛先コード
- ホテルコード
- ルームコード
- 日にち
- 価格
「DepartureCode=LAX DestinationCode=NYC である 2010 年 3 月 9 日から 2010 年 3 月 12 日までの最も安い旅行を取得してください」のようなクエリが必要です。