C#使用ElasticSearch(ES)插入、查询数据(过滤排序)
这个Demo依赖三个dll
Elasticsearch.Net.dll
Nest.dll
Newtonsoft.Json.dll
public class ESDemo
{
public static ElasticClient client;
public static string strIndexName = @"meetup" . ToLower ( ) ;
public static string strDocType = "events" . ToLower ( ) ;
public ESDemo ( )
{
var node = new Uri ( "http://localhost:9230" ) ;
var settings = new ConnectionSettings ( node) . DefaultIndex ( "default" ) ;
client = new ElasticClient ( settings) ;
}
public object Query ( )
{
for ( int i = 0 ; i < 10 ; i++ )
{
var e = new MeetupEvents ( ) { eventid = i, orignalid = "1123" , description= "这是描述" } ;
if ( i == 9 )
{
e. eventname = "azure" ;
}
PopulateIndex ( e) ;
}
SearchRequest sr = new SearchRequest ( "meetup" , "events" ) ;
TermQuery tq = new TermQuery ( ) ;
tq. Field = "eventname" ;
tq. Value = "azure" ;
sr. Query = tq;
ISort sort = new SortField { Field = "eventid" , Order = SortOrder. Ascending } ;
sr. Sort = new List < ISort> ( ) ;
sr. Sort. Add ( sort) ;
sr. Source = new SourceFilter ( )
{
Include = new string [ ] { "eventid" , "eventname" , "description" } ,
} ;
var result = client. Search< MeetupEvents> ( sr) ;
return result;
}
public bool PopulateIndex ( MeetupEvents meetupevent )
{
var index = client. Index ( meetupevent, i => i. Index ( strIndexName) . Type ( strDocType) . Id ( meetupevent. eventid) ) ;
return index. Created;
}
public class MeetupEvents
{
public long eventid { get; set; }
public string orignalid { get; set; }
public string eventname { get; set; }
public string description { get; set; }
}
}