//查询非空的数据
QueryBuilders.boolQuery().must(QueryBuilders.regexpQuery(scheduleAttributeFilter.getCode(), "[0-9]+"));
//查询空的数据
注释掉的这种返回空
//QueryBuilders.boolQuery().must(QueryBuilders.existsQuery(scheduleAttributeFilter.getCode()));
正则表达式匹配的返回正确的值(1,2,3)
QueryBuilders.boolQuery().mustNot(QueryBuilders.regexpQuery(scheduleAttributeFilter.getCode(), "[0-9]+"));
另外一种办法:
QueryBuilders.boolQuery().must( QueryBuilders.boolQuery() //.should(QueryBuilders.termQuery(scheduleAttributeFilter.getCode(),"")) 返回空字符串 .should(QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery(scheduleAttributeFilter.getCode()))));//返回的NULL
QueryBuilders.boolQuery().mustNot( QueryBuilders.boolQuery() //.should(QueryBuilders.termQuery(scheduleAttributeFilter.getCode(),"")) 返回非空值 .should(QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery(scheduleAttributeFilter.getCode())))); //返回的是非NULL
参考:https://blog.youkuaiyun.com/qq_25611965/article/details/80845953