Я хотел бы добавить несколько логических фильтров с помощью NEST, но я не могу (практически) сделать это в одном выражении, поскольку я хочу создать набор фильтров 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);
Теперь кажется, что когда добавляется второй необязательный фильтр, он по существу заменяет первый фильтр.
Я уверен, что я что-то упускаю синтаксически, но я не могу понять это, а документация NEST немного тонкая по фильтру DSL. :)