我的索引具有以下映射
{
"mappings": {
"data": {
"date_detection": false,
"_all": {
"enabled": false
},
"properties": {
"DocumentId": {
"type": "string"
},
"SubscriptionId": {
"type": "long"
},
"AccountId": {
"type": "long"
},
"SubscriptionStartDateTime": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"SubscriptionEndDateTime": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"DateWiseMetrics": {
"type": "nested",
"properties": {
"Date": {
"type": "date",
"format": "yyyy-MM-dd"
},
"Usage": {
"type": "long"
}
}
}
}
}
}
}
我想做的是
例如,
如果开始日期=“2017-08-01 00:00:00”并且结束日期=“2017-09-01 00:00:00”,我将在该期间找到所有有效订阅然后我想要查看2017-08-01至2017-09-01期间每日订阅的使用情况。
我能够使活动订阅(步骤1)正确,但是当我在嵌套对象中进一步按日期过滤时,得不到正确的值(步骤2)。
{
"_source" : false,
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"bool": {
"must": [
{ "term" : { "AccountId" : 290804220029 } },
{
"nested": {
"path": "DateWiseMetrics",
"filter":
{ "range" : { "DateWiseMetrics.Date": { "gte": "2017-01-01", "lte": "2017-08-01" } }
}, "inner_hits" : {}
}
}
],
"must_not" : [
{ "range" : { "SubscriptionStartDateTime": { "gt": "2017-08-01 00:00:00" } }},
{ "range" : { "SubscriptionEndDateTime": { "lt": "2017-01-01 00:00:00" } }}
]
}
}
}
}
}
我认为我过滤嵌套对象的方式是错误的。请帮忙。
此外,有没有办法显示少数父项的值(例如:accountid,subscriptionid)以及内部命中结果?我观察到的是当你添加“_ source”:false 时,父元素不再出现了。
由于