zoukankan      html  css  js  c++  java
  • Elasticsearch .Net Client NEST 多条件查询示例

    Elasticsearch .Net Client NEST 多条件查询示例

    交流

    Elasticsearch.Net、NEST 交流群:523061899

    /// <summary>
        /// 多条件搜索例子
        /// </summary>
        public class WheresQuerDemo
        {
    
            public class WhereInfo
            {
                public int venId { get; set; }
                public string venName { get; set; }
    
            }
    
            /// <summary>
            /// 
            /// </summary>
            public static void Search()
            {
                ElasticClient client = NestDemos.CreateClient();
    
                var result=client.Search<VendorPriceInfo>(CreateSearchRequest(new WhereInfo()));
            }
            /// <summary>
            /// searchRequest 生成
            /// </summary>
            /// <param name="where"></param>
            /// <returns></returns>
            public static Func<SearchDescriptor<VendorPriceInfo>, ISearchRequest> CreateSearchRequest(WhereInfo where)
            {
                //querys
                var mustQuerys=new List<Func<QueryContainerDescriptor<VendorPriceInfo>, QueryContainer>>();
                if (where.venId > 0)
                {
                    mustQuerys.Add(t => t.Term(f => f.vendorID, where.venId));
                }
    
                //filters
                var mustFilters = new List<Func<QueryContainerDescriptor<VendorPriceInfo>, QueryContainer>>();
                if (!string.IsNullOrEmpty(where.venName))
                {
                    mustFilters.Add(t => t.MatchPhrase(f => f.Field(fd => fd.vendorName).Query(where.venName)));
                }
    
                Func<SearchDescriptor<VendorPriceInfo>, ISearchRequest> searchRequest = r => 
                    r.Query(q =>
                                q.Bool(b =>
                                            b.Must(mustQuerys)
    
                                            .Filter(f => 
                                                        f.Bool(fb =>
                                                            fb.Must(mustFilters))
                                                    )
                                       )
                            );
    
                return searchRequest;
            }
    
    
        }
  • 相关阅读:
    day5-装饰器的正确打开方式------------->懒
    python_day5--->递归函数,二分法查找
    day4_生成器yield
    day4_迭代器
    day4_装饰器
    day4_函数嵌套和闭包以及作用域
    this作用域,改变作用域的方法
    $.ajax传数据.php
    ul标签的引用
    URL
  • 原文地址:https://www.cnblogs.com/huhangfei/p/5985280.html
Copyright © 2011-2022 走看看