I need to write one range query with different condition base
await _elasticClient.SearchAsync<T>(s => s
.Index(IndexName)
.From(From)
.Size(Size)
.Aggregations(ag => ag
.Cardinality("SumName", ca => ca.Field("CardinalField")))
.Query(q => q
.Bool(b => b
.Must(m => m
.QueryString(qs => qs .Fields("FieldNames").Query("FieldValue")),
m => m.Terms(tf => tf
.Field("TermField")
.Terms("TermFeildVal")),
m => m.Range(ra => ra.Field("RangeField").GreaterThanOrEquals("RangeVal")))))
).ConfigureAwait(false);
How can I use GreaterThanOrEquals, GreaterThan, LessThanOrEquals & GreaterThan on the basis of my input string, e.g., if someone wants with gte, use GreaterThanOrEquals, if they want lte, use LessThanOrEquals, etc.?
Like
await _elasticClient.SearchAsync<T>(s => s
.Index(objFeasibilityRangeVM.IndexName)
.From(objFeasibilityRangeVM.From)
.Size(objFeasibilityRangeVM.Size)
.Aggregations(ag => ag
.Cardinality(objFeasibilityRangeVM.SumName, ca => ca.Field(objFeasibilityRangeVM.CardinalField)))
.Query(q => q
.Bool(b => b
.Must(m => m
.QueryString(qs => qs
.Fields(objFeasibilityRangeVM.FieldNames).Query(objFeasibilityRangeVM.FieldValue)),
m => m.Terms(tf => tf
.Field(objFeasibilityRangeVM.TermField)
.Terms(objFeasibilityRangeVM.TermFeildVal)),
m => m.Range(ra => ra.Field(objFeasibilityRangeVM.RangeField)
FieldValue == "gte"?
.GreaterThanOrEquals(RangeVal)
: .LessThanOrEquals(RangeVal)
))))
).ConfigureAwait(false);