栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

.Net Core elasticsearch (一)实现CRUD(Simple.Elasticsearch1.0.2)扩展类

.Net Core elasticsearch (一)实现CRUD(Simple.Elasticsearch1.0.2)扩展类

官方Nest使用繁琐、调用不方便,所有自己写了一套扩展类,使代码书写更简洁、调用更方便,操作更简单;请前往nuget搜索:Simple.Elasticsearch

1、ElasticSearchIndex特性介绍
  • IndexName         --索引名称
  • AliasNames        --别名
  • ReplicasCount    --分片数量
  • ShardsCount      --副本数量
  • Format                --索引名格式(默认yyyy_MM)
2、创建es实体,并继承Idocument,标记为es实体类
    /// 
    /// 会员订单
    /// 
    [ElasticSearchIndex("user_order", AliasNames = new[] { "user_order" })]
    public class UserOrder : Idocument
    {
        /// 
        /// 订单ID
        /// 
        public string OrderID { get; set; }
        /// 
        /// 会员ID
        /// 
        public int UserID { get; set; }
        /// 
        /// 下单金额
        /// 
        public decimal Money { get; set; }
        /// 
        /// 创建时间
        /// 
        public DateTime CreateTime { get; set; }
    }
3、利用扩展类实现新增、查询操作
 IElasticClient client = new ElasticClient(new Uri("localhost:9100"));

            //新增
            client.Insert(new UserOrder { CreateTime = DateTime.Now, Money = 100, OrderID = "123456789", UserID = 1 });
            //查询会员1的并且金额大于100的订单,query仅拼接查询语句,没有进行真实查询
            var query = client.Query(c => c.Where(1, t => t.UserID),
                                                c => c.Where(100, t => t.Money, expressionType.GreaterThanOrEqual));
            //此处乃真实查询数据
            var list = client.Search(query).documents.ToList();

            //根据订单ID查询
            var order = client.FirstOrDefault(c => c.Where("123456789", t => t.OrderID));

            //查询订单是否存在
            bool exists = client.Any(c => c.Where("123456789", t => t.OrderID));

            //查询会员订单总数
            int count = client.Count(c => c.Where(1, t => t.UserID));

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/311443.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号