Reputation: 601
I want to convert the following sql query into an elasticsearch NEST query:
select * from Table1 where 20 between minAge and maxAge
So far this is what my nest query looks like ("20" is value from client):
var result5 = client.Search<Person>(b => b
.Filter(ff => ff
.Range(n => n
.OnField(f => f.minAge)
.Greater(20)
)
)
.Filter(ff => ff
.Range(n => n
.OnField(f => f.maxAge)
.Lower(???) // how do I specify max value as fieldname?
)
);
Upvotes: 1
Views: 1063
Reputation: 751
.Filter(ff => ff
.Range(n => n
.OnField(f => f.minAge)
.Greater(x)
) && ff
.Range(n => n
.OnField(f => f.maxAge)
.Lower(x)
)
)
In this way you have x -> between minAge and maxAge. So x must be greater then minAge and lower then maxAge in the same time. Hope it helps!
Upvotes: 1
Reputation: 77
This sql mean that minAge<20 and maxAge>20, so the nest query is:
var result5 = client.Search<Person>(b => b
.Filter(ff => ff
.Range(n => n
.OnField(f => f.minAge)
.Lower(20)
) && ff
.Range(n => n
.OnField(f => f.maxAge)
.Greater(20)
)
)
;
Upvotes: 0