2016-08-29 41 views
0

假设有文档代表书籍,并且有一个名为的作者。什么聚合可以检索在大多数文档中找到的作者值?或者换过,写过最多的作者书籍查找在大多数文档中找到的字段值

如果标签不清楚,问题是指Elasticsearch

例如

{ 
    "name" : "Book1" 
    "author" : "John" 
}, 
{ 
    "name" : "Book3" 
    "author" : "Mike" 
}, 
{ 
    "name" : "Book2" 
    "author" : "John" 
}, 
{ 
    "name" : "Book4" 
    "author" : "Frank" 
} 

对于上面的数据,约翰必须返回,因为有2个文件与他作为作者,而其他人只有一本书。

我试着用value_count和cardinality,但这只返回count而不是value本身。

回答

0

实际上,我发现这很简单,使用条款聚合。离开它,也许其他发现这有用。

Reference

例如来自以上数据:

{ 
    "aggs": { 
     "author_count": { 
      "terms": { 
       "size": 2, 
       "field": "book.author" 
      } 
    } 
}