Elasticsearch .net client NEST 空字符/null值查询
null值查询
当某个字段值为null时,其实在es里该条数据是没有这个字段的。查询时检测包含不包含该字段就行。
/// <summary> /// null 值查询 /// 当数据为Null时字段不存在 /// </summary> /// <param name="indexName"></param> public void NullValueQuery(string indexName) { var result = _client.Search<TestModel5>( s => s .Index(indexName)//索引 .Type(typeof(TestModel5))//类型 //fd.Name必须存在 即:fd.Name!=null .Query(q=>q.Bool(b=>b.Must(mt=>mt.Exists(ex=>ex.Field(fd=>fd.Name)))) )); }
空字符查询
当某个字段值为空字符时(""),字段是存在的。
/// <summary> /// 空字符查询 /// </summary> /// <param name="indexName"></param> public void StringEmptyQuery(string indexName) { var result = _client.Search<TestModel5>( s => s .Index(indexName)//索引 .Type(typeof(TestModel5))//类型 //.Verbatim()如果不加该查询条件无效 .Query(q => q.Bool(b => b.Must(mt => mt.Term(ex => ex.Verbatim().Field(fd => fd.Name).Value("")))) )); }
感谢群友的普及。
如果你也在用NEST 不妨一起来交流学习吧。^.^
Elasticsearch.Net、NEST 交流群:523061899