在json方面获得前N个存储桶后,如何获取一个多值文件的总唯一文档数?

时间:2019-10-25 04:56:36

标签: solr lucene solrcloud

我正在尝试获取表示以下内容的数据-一年中,所有文章中,找出排名前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}}}]}}}

0 个答案:

没有答案