我想從彈性搜索的結果使用NEST API日期的預定義日期範圍,但我不管理。此示例代碼我試圖檢索一週的數據,但它忽略了我的日期篩選並返回比我的初始日期更舊的數據。NEST elasticsearch DateRange查詢
在此先感謝您的幫助!
var node = new Uri("http://localhost:9200");
var settings = new ConnectionSettings(node);
var client = new ElasticClient(settings);
settings.DefaultIndex("wholelog-2017.04*");
client.CreateIndex("wholelog-2017.04*",
create => create.Mappings(
mappings => mappings.Map<LogLine>(type =>
type.AutoMap()
)
));
DateTime InitDate = DateTime.Now.AddDays(-7);
var filterClauses = new List<QueryContainer>();
filterClauses.Add(new DateRangeQuery
{
Field = new Field("logTime"),
LessThanOrEqualTo = DateTime.Now,
GreaterThanOrEqualTo = InitDate
});
var searchRequest = new SearchRequest<LogLine>()
{
Size = 10000,
From = 0,
Scroll = "1m",
Query = new BoolQuery
{
Filter = filterClauses
}
};
var searchResult = client.Search<LogLine>(searchRequest);
[ElasticsearchType(Name="logLine")]
public class LogLine
{
public string Message {get;set;}
public DateTime logTime {get;set;}
public string type {get;set;}
public string logServer {get;set;}
}
logstash配置文件
output {
elasticsearch{
hosts => "localhost"
#user => ####
#password => ####
index => "wholelog-%{+YYYY.MM.dd}"
}
}
你能提供你的映射和這個查詢的響應嗎? – Random
感謝您的幫助,我添加了映射。這是一個自動填充的POCO類。我已經用同樣的結果嘗試了DateMath和DateTime。數據映射正確,我可以通過調試看到LogLine對象被正確填充。我不知道爲什麼日期查詢不起作用... – seiken