NEST是.NET下使用Elasticsearch的高层客户端程序,对Elasticsearch进行了很多封装,支持DSL强类型查询。
下面是.NET CORE的一个简单示例
1.新建一个 .Net Core ConsoleApp,使用NuGet添加NEST包,或者使用命令:
Install-Package NEST
2.创建POPC类,网站在线人数
public class OnlineUserInfo
{
public DateTime Time { get; set; }
public int Num { get; set; }
public override string ToString()
{
return $"{Time} - {Num}";
}
}
3.插入一个 OnlineUserInfo 文档到Elasticsearch
using System;
using Nest; //引用命名空间
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
//设置连接字符串,DefaultIndex中的表名要小写
var settings = new ConnectionSettings(new Uri("http://192.168.1.11:9209"))
.DefaultIndex("onlineuser");
var client = new ElasticClient(settings);
//实例化一个对象
var d = new OnlineUserInfo
{
Time = DateTime.Now,
Num = 5
};
//通过 IndexDocument() 方法插入数据
var ndexResponse = client.IndexDocument(d);
Console.WriteLine("ok");
Console.Read();
}
}
}
4.数据查询
var settings = new ConnectionSettings(new Uri("http://192.168.1.11:9209"))
.DefaultIndex("onlineuser");
var client = new ElasticClient(settings);
var searchResponse = client.Search<OnlineUserInfo>(s => s
.Query(q => q
.MatchAll()
)
);
var doc = searchResponse.Documents.FirstOrDefault();
Console.WriteLine(doc.ToString());
其中 client.Search<OnlineUserInfo>(...) 会生成下面的 Json
{
"query": {
"match_all": {}
}
}