Description
Is your feature request related to a problem? Please describe.
I need to write queries like this:
{
"query": {
"bool": {
"filter": [
{
"term": {
"propOne": "my_value_1"
}
},
{
"term":
{
"propTwo": "my_value_2"
}
}
]
}
}
}
I couldn't find any examples of that in the current documentation. Flailing around in VS Code I can end up with compilable code like this:
Query(q =>
q.Bool(b => b
.Filter(f => f.Term(t => t.Field(f => f.PropOne).Value("my_value_1")))
.Filter(f => f.Term(t => t.Field(f => f.PropTwo).Value("my_value_2))))
));
But that doesn't work; only the "PropTwo" filter ends up in the resulting query. One answer I found via another tangentially-related issue here was to do something like this:
var filters = new List<Action<QueryDescriptor<MyType>>>();
filters.Add(f => f.Term(t => t.Field(f => f.PropOne).Value("my_value_1")));
filters.Add(f => f.Term(t => t.Field(f => f.PropTwo).Value("my_value_2")));
...and then include them in my query with .Filter(filters.ToArray())
. If there's a way to do what I want simply by chaining, I'm not sure what it might be.
I am no doubt bad at intuiting fluent interfaces, but it felt frustrating to know what output I wanted but be unable to create that in code.
Describe the solution you'd like
For me, it would have helped a lot to have one or two examples on a page like "Query examples" demonstrate how to have more than one query descriptor under something like "Filter()".
Additional context
I appreciate the library!