IRavenQueryable.Search メソッドを使用して有効な検索結果を返すクエリがあります。ただし、.Where メソッド呼び出しを介してこれらの結果をさらにフィルター処理し、一致する ProjectId を持つものだけを含むように検索結果をフィルター処理したいと考えています。
私のオブジェクト構造は、それぞれが Issue エンティティのコレクションを含む Project エンティティのセットです。
私のインデックスは、次のような課題検索結果の予測を作成します。
{ID、キー、概要、説明、ProjectId、ProjectKey、クエリ}
Query プロパティは、キーワード検索で使用される object[] です。
キーワード検索を実行すると:
var results = session.Query().AsProjection().Search(x => x.Query, "キーワード");
正しい結果が返ってきます。しかし、Where メソッドも適用しようとすると、次のようになります。
results = results.Where(i => i.ProjectId == SelectedProject.Id);
結果をフィルタリングするのではなく、一致するプロジェクト ID を持つ他のすべての結果を含めます。
このシナリオで、Linq または RavenDB の IRavenQueryable に OR ではなく AND を強制的に適用する正しい方法は何ですか?