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

8 篇文章 2 订阅
1 篇文章 0 订阅
本文介绍了如何通过自定义扩展类简化Elasticsearch的操作,包括创建索引、定义实体类以及实现新增、查询等常见操作。示例展示了如何使用ElasticSearchIndex特性,以及如何进行条件查询和数据检索,帮助开发者更高效地使用Elasticsearch。
摘要由CSDN通过智能技术生成

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

1、ElasticSearchIndex特性介绍

  • IndexName         --索引名称
  • AliasNames        --别名
  • ReplicasCount    --分片数量
  • ShardsCount      --副本数量
  • Format                --索引名格式(默认yyyy_MM)

2、创建es实体,并继承IDocument,标记为es实体类

    /// <summary>
    /// 会员订单
    /// </summary>
    [ElasticSearchIndex("user_order", AliasNames = new[] { "user_order" })]
    public class UserOrder : IDocument
    {
        /// <summary>
        /// 订单ID
        /// </summary>
        public string OrderID { get; set; }
        /// <summary>
        /// 会员ID
        /// </summary>
        public int UserID { get; set; }
        /// <summary>
        /// 下单金额
        /// </summary>
        public decimal Money { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        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<UserOrder>(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<UserOrder>(c => c.Where("123456789", t => t.OrderID));

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值