1、ElasticSearchIndex特性介绍官方Nest使用繁琐、调用不方便,所有自己写了一套扩展类,使代码书写更简洁、调用更方便,操作更简单;请前往nuget搜索:Simple.Elasticsearch
- IndexName --索引名称
- AliasNames --别名
- ReplicasCount --分片数量
- ShardsCount --副本数量
- Format --索引名格式(默认yyyy_MM)
///3、利用扩展类实现新增、查询操作/// 会员订单 /// [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; } }
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));



