NEST を使用して複数の bool フィルターを追加したいのですが、さまざまな条件に応じて一連のboolフィルターを作成したいので、単一のステートメントで (実際には) 実行できません。
この擬似コードのようなもの:
// Append a filter
searchDescriptor.Filter(f => f.Bool(b => b.Must(m => m.Term(i => i.SomeProperty, "SomeValue"))));
if (UserId.HasValue)
{
// Optionally append another filter (AND condition with the first filter)
searchDescriptor.Filter(f => f.Bool(b => b.Must(m => m.Term(i => i.AnotherProperty, "MyOtherValue"))));
}
var result = Client.Search(searchDescriptor);
2 番目のオプションのフィルターが追加されると、基本的に最初のフィルターが置き換えられるようです。
私は構文的に何かが欠けていると確信していますが、それを理解することはできません.NESTのドキュメントはフィルターDSLで少し薄いです. :)