gpt4 book ai didi

c# - 如何在 Nest ElasticSearch 客户端中编写日期范围查询?

转载 作者:可可西里 更新时间:2023-11-01 08:45:30 26 4
gpt4 key购买 nike

我有一个 .Net 应用程序试图从 elasticsearch 文档存储中获取数据,具有以下结构的记录:

{
"_index": "TestIndex",
"_type": "amqp",
"_id": "123",
"_source": {
"@timestamp": "2014-10-27T01:31:54.780Z",
"type": "amqp",
"LogGenerationTime": "2014-10-26T21:31:54.780",
"ThreadID": "6",
"ProcessID": "8136",
"SessionID": "xyz",
"UserID": "12345678",
},
}

我想获取过去 20 分钟内具有 LogGenerationTime 的所有记录。这是我到目前为止编写的查询,但它似乎没有返回任何数据:

    var format = "yyyy-MM-dd'T'HH:mm:ss.fff";
var lowerBound = DateTime.Now.AddMinutes(-20);
ISearchResponse<Amqp> resultSet = _elasticSearchClient.Search<Amqp>(q => q.Query
(p => p.Range
(v => v.OnField
(x => x.LogGenerationTime).GreaterOrEquals(lowerBound, format))));

有人可以帮助编写正确的查询以获取预期结果吗?谢谢!

最佳答案

查看源代码,OnField 方法有两个重载。当我使用带 Linq 表达式参数的查询时,查询不返回任何数据。但是我能够让它与其他重载一起使用,它采用字符串值,我将 elasticsearch 文档的字段名称作为字符串传递。下面是返回预期结果的查询:

var resultSet = _elasticSearchClient.Search<Amqp>(q => q.Query
(p => p.Range(v => v.OnField("LogGenerationTime").GreaterOrEquals(lowerBound))).Size(10000));

看起来像是框架中的错误,但我不完全确定。

关于c# - 如何在 Nest ElasticSearch 客户端中编写日期范围查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26580073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com