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