在Nest Api查询中排除null

问题描述

我在嵌套查询添加了以下代码段,该代码段返回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都需要在同一个布尔查询描述符上被调用

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...