C# 如何使用NEST 1.x和C从ElasticSearch搜索/查询/获取/排序#
我为这个问题发送了两天的时间,但无法解决它。请告知C# 如何使用NEST 1.x和C从ElasticSearch搜索/查询/获取/排序#,c#,
elasticsearch,nest,C#,
elasticsearch,Nest,我为这个问题发送了两天的时间,但无法解决它。请告知 class Test_Market { public string x_ric { get; set; } public string date { get; set; } public string timestamp { get; set; } public string rdn_code { get; set; } public Dictionary&
class Test_Market
{
public string x_ric { get; set; }
public string date { get; set; }
public string timestamp { get; set; }
public string rdn_code { get; set; }
public Dictionary<string, string> fids { get; set; }
}
我对向Elasticsearch添加数据没有问题,但面临排序/查询/搜索的问题
这个代码没有问题
var node = new Uri("URL");
var ESsettings = new ConnectionSettings(node);
var client = new ElasticClient(ESsettings);
var response = client.Search<Test_Market>(s => s
.Index("test-market-b")
.Type("test_market").Size(10)
);
timestamp
字段不应为string
类型,而应为date
。@Val我尝试了.Query(q=>q.Term(“日期”,“07-24-2018”)或.Query(q=>q.Term(“x_-ric”,“ABC”)它们没有给我任何价值。我的意思是在你的测试市场
类中,时间戳
应该定义为日期,而不是字符串查看文档中的1.x:
var node = new Uri("URL");
var ESsettings = new ConnectionSettings(node);
var client = new ElasticClient(ESsettings);
var response = client.Search<Test_Market>(s => s
.Index("test-market-b")
.Type("test_market").Size(10)
);
var myData = new List<object>();
foreach (var hit in response.Documents)
{
myData.Add(hit.timestamp);
}
var responseXX = client.Search<Test_Market>(s => s
.Index("test-market-b")
.Type("test_market")
.Size(1)
.Sort(sort => sort.OnField( t=>t.timestamp).Descending())
);
var result = client.Search<Test_Market>(s => s
.Query(q=>q
.Term("date","07-24-2018")
)
);
var responseXX = client.Search<dynamic>(s => s
.Query(q => q
.Match(m => m.OnField("x_ric").Query("AAA")))
.Sort(sort => sort.OnField("timestamp").Descending())
);
var products = responseXX.Documents.ToList();
PUT test-market-b
{
"mappings": {
"test_market": {
"properties": {
"date": {
"type": "date",
"format": "MM-dd-yyyy"
},
"timestamp": {
"type": "date",
"format": "MM-dd-yyyy HH:mm:ss"
}
}
}
}
}