问题描述
我在嵌套查询中添加了以下代码段,该代码段返回ISearchResponse<T>
.Query(query => query.Match(m =>
m.Field(f =>
f => !string.IsNullOrEmpty(f.Purchase.NationalCode.Trim()))
)))
但这对返回的记录数量没有影响(我知道那里有空值)
我应该以其他方式构建查询吗?
编辑后添加: 我已基于此answer here尝试了以下方法,但也没有运气
.Query(query => query.Bool(b=>
b.Must(m=> m.Exists(
f=>f.Field("nationalCode")))))
.Query(query => query.Bool(b=>
b.MustNot(m=> m.Term(
"nationalCode",""))))
解决方法
尝试以下
.Query(query => query
.Bool(b => b
.Must(m => m
.Exists(f => f.Field("nationalCode"))
)
.MustNot(m => m
.Term("nationalCode","")
)
)
)
.Must
和.MustNot
都需要在同一个布尔查询描述符上被调用