當某個字段值爲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)))) )); }
當某個字段值爲空字符時(""),字段是存在的。spa
/// <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("")))) )); }
感謝羣友的普及。code
若是你也在用NEST 不妨一塊兒來交流學習吧。^.^blog
Elasticsearch.Net、NEST 交流羣:523061899索引