Json Elasticsearch请求如何在两次之间获得前20名视频
我需要在两次之间找到观看次数最多的20个视频,我做到了:Json Elasticsearch请求如何在两次之间获得前20名视频,json,
elasticsearch,facets,Json,
elasticsearch,Facets,我需要在两次之间找到观看次数最多的20个视频,我做到了: $Param['body']=' { "query" : { "match_all" : {} }, "facets" : { "WhatIwant" : { "range" : { "key_field" : "time", "value_field" : "video_id",
$Param['body']='
{
"query" : {
"match_all" : {}
},
"facets" : {
"WhatIwant" : {
"range" : {
"key_field" : "time",
"value_field" : "video_id",
"ranges" : [
{ "from" :1399236597 , "to" : 1400331247 }
]
}
}
}
}';
我得到了一个可以看到一些参数的结果,但我没有看到整个列表:
[facets] => Array
(
[WhatIwant] => Array
(
[_type] => range
[ranges] => Array
(
[0] => Array
(
[from] => 1400331247
[count] => 4585
[min] => -1
[max] => 3584
[total_count] => 4585
[total] => 12884198
[mean] => 2810.0758996728
)
)
)
)
)
如果可能的话,我想要这样的东西:
[facets] => Array
(
[WhatIwant] => Array
(
[_type] => range
[ranges] => Array
(
[0] => Array
(
[time] => 1400331247
[video_id] => 4585
)
[1] => Array
(
[time] => 1400331248
[video_id] => 4582
)
[2] =>Array()
.....
....
[19]
)
)
)
)
感谢您阅读我的文章您只需要一个简单的
术语
方面,按视频id
分组并应用范围过滤器我这样做了,但它不是我想要的。。。{“查询”:{“匹配所有”:{},“facets”:{“whatiwant”:{“terms”:{“field”:“video_id”},“range”:{“key_field”:“time”,“ranges”:[{“from”:1399236597,“to”:1400331247}}}}}您需要类似于:{“查询”:{“匹配所有”:{},“facets”:{“whatiwant”:{“术语”:{“字段”:“视频id”},刻面过滤器:{“范围”:{“从”:1399236597,“到”:1400331247}}}}}我这样做了,它为您的帮助工作了thx。{“刻面”:{“视频”:{“术语”:{“字段”:“视频id”,“大小”:“21”},“刻面过滤器”:{“范围”:{“时间”:{“从”:“.$startTime.”,“到”“:”.$endTime.“}},,“查询”:{“匹配所有”:{}