ネストされた構造 (オブジェクトのコレクション) 内のプロパティ値と構造コンテナーの組み合わせに対してフィルター処理/並べ替えクエリを提供する静的インデックスを作成する方法を探しています。次の理由により、自明ではないようです。
- ネストされた構造/コレクションのプロパティがインデックスの個々のフィールド (個々のコレクション) に分離されている
AND
場合、ネストされた構造/コレクションの 2 つ以上のプロパティをフィルタリングするときに条件を使用することはできません。 - ファンアウト インデックスの複雑さ (例を参照)。これにより、ソリューションの実行が非常に遅くなります。
次の永続モデルがあるとします。
public class Document
{
public string Title { get; set; }
public List<UserChange> RecentModifications { get; set; }
}
どこ
public class UserChange
{
public string UserId { get; set; }
public DateTime Timestamp { get; set; }
}
質問:のインデックスを作成してDocument
、すべてのフィールドの組み合わせでフィルター処理/並べ替えを行う方法: Title
、UserId
およびTimestamp
?
考えられる使用例:
- 特定のユーザーと日付範囲の「契約」という単語を含むすべてのドキュメントを取得する
- 'contract' という単語を含むドキュメントを、ユーザーが最後に変更した順に並べ替えます。
PS私は、永続化モデルを再構築することでインデックス作成の制限を回避できることを理解しています-最近変更されたドキュメントの構造をドキュメントに保存しUser
ますが、回避したい他の制限が課せられます。