我正在尝试获取表示以下内容的数据-一年中,所有文章中,找出排名前10位的作者,以获取其中(排名前10位的文章)/(当年文章总数)的百分比。 如您所知,作者应该是多值字段。因此,当我使用json facet时,在获得前10个存储桶之后,如果我执行sum(count),则计数大于实际文章,因为前10个作者可能在同一篇文章中。我想要的是:在获得排名前10位的作者及其文章的具体数量后,我需要获得总数并合并所有排名前10位的文章,如sqldistinct()-(因为author1&author2可能写同一篇文章)。如何实现?
当前我正在使用这样的方面
type:range,
field:APD_YEAR,
start:2013,
end:2014,
gap:1,
facet: {
top_10_authors_by_year:{
type: terms,limit: 10,field: AUTHORS_FACET,numBuckets:true,allBuckets:true
}
}
}
}
得到
facets":{
"count":854,
"APD_YEAR_RANGES":{
"buckets":[{
"val":2013,
"count":34,
"top_10_author_by_year":{
"numBuckets":37,
"buckets":[{
"val":"author1",
"count":16},
{
"val":"author2",
"count":3},
{
"val":"author3",
"count":3},...
{
"val":"author10",
"count":3},
],
"allBuckets":{
"count":74}}}]}}}