【发布时间】:2017-11-30 16:12:29
【问题描述】:
我在 Kibana 中测试了一个简单的请求,并希望使用 NEST 将其转换为代码。
{
"sort": [
{
"@timestamp": {
"order": "desc"
}
}
],
"query": {
"bool": {
"must": [
{
"match" : {
"color" : {
"query": "red"
}
}
},
{
"range": {
"@timestamp": {
"gte": 1512036771843,
"lte": 1512051171843,
"format": "epoch_millis"
}
}
}
]
}
}
}
我的数据中没有任何时间戳字段,因此我想使用 @timestamp 变量。出于某种原因,Kibana 使用 unixtime 进行搜索,所以我刚刚从 Kibana 主窗口搜索中复制了它。
现在我正在尝试用 NEST 重现相同的请求,并且只能得到
{
"sort":[
{
"@timestamp":{
"order":"desc"
}
}
],
"query":{
"bool":{
"must":[
{
"match":{
"color":{
"query":"red"
}
}
}
],
"filter":[
{
"range":{
"@timestamp":{
"gte":1512042533.022923,
"lt":1512056933.022923
}
}
}
]
}
}
}
这是对 Elastic 的无效查询。这是我的代码:
var searchResponse = _client.Search<Logs>(s => s
.Query(q => q.Bool(b=>b.Must(mu=>mu.Match(m =>m.Field(f => f.Color).Query("Red")))
.Filter(fi => fi.Range(r => r.Field("@timestamp").GreaterThanOrEquals(rangeTime).LessThan(currentTime)))))
.Sort(p => p.Descending("@timestamp")));
另外,如果 @timestamp 值不是我的对象模型的一部分,我如何从 Elastic 响应中保存该值?
【问题讨论】:
标签: .net elasticsearch nest