NEST APIを使用して日付の定義済み範囲でelasticsearchから結果を取得しようとしていますが、管理しません。このサンプルコードでは、1週間のデータを取得しようとしていますが、私の日付フィルタを無視しています。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