using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Elasticsearch.Net;
using Nest; namespace ElasticSearchClinet_NEST
{
class Program
{
static void Main(string[] args)
{
new TestElasticSearch().TestRequest();
}
} public class TestElasticSearch
{
/// <summary>
/// 生成搜索客户端
/// </summary>
/// <returns></returns>
private ElasticClient GetSearchClient()
{
//var connectString = ConfigurationManager.ConnectionStrings["ElasticSearch"].ConnectionString;
var nodes = new Uri[]
{
new Uri("http://a.elk.qaem.cn:9200"),
new Uri("http://b.elk.qaem.cn:9200"),
new Uri("http://c.elk.qaem.cn:9200"),
new Uri("http://d.elk.qaem.cn:9200"),
};
var pool = new StaticConnectionPool(nodes);
var settings = new ConnectionSettings(pool);
var client = new ElasticClient(settings);
return client;
} public string TestRequest()
{
var client = this.GetSearchClient();
var person = new Person
{
Id = "",
Firstname = "Martijn",
Lastname = "Laarman"
}; var index = client.Index(person, i => i
.Index("personindex")
.Type("persontype")
.Id("")
.Refresh()
.Ttl("1m")
); var results = client.Search<Person>(s => s
.From()
.Size()
.Query(q => q
.Term(p => p.Firstname, "martijn")
)
); foreach (var item in results.Hits)
{
var p = item.Source;
Console.WriteLine(p.Id);
Console.WriteLine(p.Firstname);
Console.WriteLine(p.Lastname);
}
Func<MatchPhraseQueryDescriptor<Person>, IMatchQuery> selector = q =>
{
return q.Query(@"{
""query"": {
""match_phrase"": {
""ZuHeName"": ""基金""
}
}
}");
};
Func<SearchDescriptor<ZuHeEntity>, ISearchRequest> search = s => s
.Query(
q=>q.MatchPhrase(t=>t.Field("ZuHeName").Query("基金"))
).From()
.Size(); var zuheList = client.Search<ZuHeEntity>(search); foreach (var item in zuheList.Hits)
{
var p = item.Source;
Console.WriteLine(p.ZuHeId);
Console.WriteLine(p.ManagerName);
Console.WriteLine(p.ZuHeName);
}
Console.ReadKey();
return results.Hits.Count().ToString();
}
} public class Person
{
public string Id { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
} public class ZuHeEntity
{ /// <summary>
/// 组合Id
/// </summary>
public string ZuHeId
{
get;
set;
} /// <summary>
/// 管理人Id
/// </summary>
public string ManagerId
{
get;
set;
} /// <summary>
/// 组合创建时间
/// </summary>
public DateTime StartDate
{
get;
set;
} /// <summary>
/// 组合名
/// </summary>
public string ZuHeName
{
get;
set;
} /// <summary>
/// 组合管理人名
/// </summary>
public string ManagerName
{
get;
set;
} public string Permit
{
get; set;
}
} }
http://nest.azurewebsites.net/nest/cluster/health.html