以下は、elasticsearch インデックスのサンプル ドキュメントです。
{
message: "M1",
date: "date object",
comments: [
{
"msg" :"good"
date:"date_obj1"
},
{
"msg" :"bad"
date:"date_obj2"
},
{
"msg" :"ugly"
date:"date_obj3"
}
]
}
と
{
message: "M2",
date: "date_object5",
comments: [
{
"msg" :"ugly"
date:"date_obj7"
},
{
"msg" :"pagli"
date:"date_obj8"
}
]
}
ここで、1 日あたりのドキュメント数と 1 日あたりのコメント数を見つける必要があります。日付ヒストグラムを使用して 1 日あたりのドキュメント数を取得でき、正しい結果が得られます。次の集計クエリを作成します
aggs : {
"posts_over_days" : {
"date_histogram" : { "field" : "date", "interval": "day" }
}
}
しかし、同様のことを 1 日あたりのコメントを取得しようとすると、正しくないデータが返されます (1500 件以上のコメントの場合、160 件の奇妙なコメントしか返されません)。次のクエリを作成しています。
aggs : {
"comments_over_days" : {
"date_histogram" : { "field" : "comments.date", "interval": "day" }
}
}
希望する結果を得る方法を知りたいですか? 私が欲しいものを得るためにelasticsearchに方法はありますか? 他の情報を提供する必要がある場合はお知らせください。
期待される出力:
buckets: [
{
time_interval: date_objectA,
doc_count: x
},
{
time_interval: date_objectB,
doc_count: y
}
]