【发布时间】:2015-08-06 23:21:33
【问题描述】:
我有一个日期时间?字段,如果该字段在未来或它为 NULL,我想返回项目。
NULL检查是问题,ES不存储null值,所以我无法检查。
难道没有什么方法可以检查 .Query 中不存在吗?
我知道我可以 .Filter() 让 ES 返回没有特定字段的项目,但我需要检查 .Query() 中的 NULL 是否不起作用。
我拥有的是:
var results = client.Search<ElasticResult>(s => s
.Filter(f => f.Missing(ff=>ff.EndTimeUTC) || f.Exists(ff=>ff.EndTimeUTC))
.Query(q => q
.Term(p => p.ShortDescription, "somevalue")
&& ( q.Range(p => p.OnField(f => f.EndTimeUTC).GreaterOrEquals(DateTime.UtcNow)) ||
q.Term(t => t.EndTimeUTC, null) ) // THIS IS HAVING NO EFFECT
));
我不确定
.Filter(f => f.Missing("endTimeUTC") || f.Exists("endTimeUTC"))
实际上有什么不同,ShortDescription 查询正在返回所需的文档,它们只是没有 endTimeUTC 字段
【问题讨论】:
标签: .net elasticsearch nest