• (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();

    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

     

    posted @ 2018-09-21 10:07 Mr. Hu 閱讀(...) 評論(...) 編輯 收藏
    Map
    凯发娱乐