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;
            }
    
    
        }
  • 相关阅读:
    Mysql集群
    Redis集群
    Python3 实现数据读写分离设计
    PHP Session的优化使用
    防盗链与token运用
    PHP与REDIS
    优化设计提高sql类数据库的性能
    Nodejs密集型CPU解决方案
    可重入和线程安全
    信号处理函数编写规则
  • 原文地址:https://www.cnblogs.com/huhangfei/p/5985280.html
Copyright © 2011-2022 走看看