Tôi có một thử thách thú vị, mà tôi nghĩ có một câu trả lời dễ dàng."Tự động" tạo bộ lọc trong NEST
Tôi biết rằng bộ lọc NEST hoạt động chính xác khi cú pháp bạn làm điều gì đó như thế này:
var andFilter = FilterFactory.AndFilter(
FilterFactory.TermFilter("name.first", "shay1"),
FilterFactory.TermFilter("name.first", "shay4")
);
dịch vụ cơ sở của tôi nên cho phép một người gọi để vượt qua trong một số loại danh sách đếm được của các mục để lọc.
tôi về cơ bản muốn để có thể lập trình đạt được một cái gì đó như thế này (bộ lọc được truyền vào phương pháp):
var andFilter = new FilterDescriptor();
foreach (var filter in filters)
{
andFilter = filter concatenated to andFilter
}
Nói cách khác nếu tôi trôi qua trong một mảng của {{ "first.name" "joe"}, { "first.name", "jim"}, { "first.name", "thẳng thắn"}} tôi muốn để sản xuất tương đương với
var andFilter = FilterFactory.AndFilter(
FilterFactory.TermFilter("name.first", "joe"),
FilterFactory.TermFilter("name.first", "joe"),
FilterFactory.TermFilter("name.first", "frank")
);