我想将以下sql查询转换为elasticsearch NEST查询:
select * from Table1 where 20 between minAge and maxAge
到目前为止,这是我的嵌套查询的样子(" 20"是来自客户的价值):
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?
)
);
答案 0 :(得分:1)
.Filter(ff => ff
.Range(n => n
.OnField(f => f.minAge)
.Greater(x)
) && ff
.Range(n => n
.OnField(f => f.maxAge)
.Lower(x)
)
)
通过这种方式你有x - &gt;在minAge和maxAge之间。所以x必须大于minAge并且同时低于maxAge。希望它有所帮助!
答案 1 :(得分:0)
这个sql意味着minAge&lt; 20和maxAge&gt; 20,所以嵌套查询是:
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)
)
)
;