2个字段名称之间的NEST Elasticsearch查询值
NEST Elasticsearch query value between 2 field names
我想将以下 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?
)
);
这个sql表示minAge<20,maxAge>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)
)
)
;
.Filter(ff => ff
.Range(n => n
.OnField(f => f.minAge)
.Greater(x)
) && ff
.Range(n => n
.OnField(f => f.maxAge)
.Lower(x)
)
)
通过这种方式,x -> 介于 minAge 和 maxAge 之间。所以 x 必须同时大于 minAge 和小于 maxAge。希望对您有所帮助!
我想将以下 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?
)
);
这个sql表示minAge<20,maxAge>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)
)
)
;
.Filter(ff => ff
.Range(n => n
.OnField(f => f.minAge)
.Greater(x)
) && ff
.Range(n => n
.OnField(f => f.maxAge)
.Lower(x)
)
)
通过这种方式,x -> 介于 minAge 和 maxAge 之间。所以 x 必须同时大于 minAge 和小于 maxAge。希望对您有所帮助!