Ich habe eine interessante Herausforderung, die ich denke, es gibt eine einfache Antwort auf."Dynamisch" Erstellen eines Filters in NEST
Ich weiß, dass NEST Filter korrekt funktionieren, wenn syntaktisch Sie so etwas tun:
var andFilter = FilterFactory.AndFilter(
FilterFactory.TermFilter("name.first", "shay1"),
FilterFactory.TermFilter("name.first", "shay4")
);
Meine Basisdienste sollte ein der Anrufer erlauben, in einer Art enumerable Liste der Elemente passieren zu filtern.
Ich würde grundsätzlich gerne in der Lage sein, programmatisch so etwas wie dies zu erreichen (Filter in die Methode übergeben wird):
var andFilter = new FilterDescriptor();
foreach (var filter in filters)
{
andFilter = filter concatenated to andFilter
}
Mit anderen Worten, wenn ich in einer Reihe von {{ „first.name“ bestanden "joe"}, { "first.name", "jim"}, { "first.name", "Frank"}} ich möchte das Äquivalent von
var andFilter = FilterFactory.AndFilter(
FilterFactory.TermFilter("name.first", "joe"),
FilterFactory.TermFilter("name.first", "joe"),
FilterFactory.TermFilter("name.first", "frank")
);