• 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;
            }
    
    
        }
  • 相关阅读:
    ACM HDU 3910 Liang Guo Sha(数学题,读懂题目)
    防止 7Zip 生成的 ZIP 文件在 Mac OS X 下出现乱码
    NYOJ 506
    Scanner
    String 与StringBuilder
    基于JAVA的聊天室开发
    PS加粗字体
    MySQL相关命令
    Matlab中数据处理和多项式插值与曲线拟合
    dos下进入某一文件
  • 原文地址:https://www.cnblogs.com/huhangfei/p/5985280.html
Copyright © 2020-2023  润新知