我的索引有多种类型,如下所示:
我正在构建一个API,用于建议按类型分组的索引项目。问题是我希望每个聚合中都有size
功能,就像completion suggester
方法一样,返回确切数量的项目对于每种类型。我最终采用多索引查询方法分别查询每种类型,有没有更好的方法来处理这个?
答案 0 :(得分:1)
您指定的每个聚合都可以有一个与之关联的过滤器,所以您可以
以这种方式将聚合的上下文减少到特定类型。另外,
您可以使用filters
聚合为每个过滤器创建存储桶,然后运行
每个子桶上具有特定大小的聚合,如下所示:
GET /_search
{
"aggs": {
"alltypes": {
"filters": {
"filters": {
"songs": {"term": {"_type": "songs"}},
"books": {"term": {"_type": "books"}},
"movies": {"term": {"_type": "movies"}}
}
},
"aggs": {
... your aggregation for each individual type here ...
}
}
}
}
有关filters
聚合的更多信息,请访问:
http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filters-aggregation.html
希望这有帮助,如果我误解了你的问题,请告诉我(这是一个问题 你不确定自那以后是否在谈论建议者或聚合 两个都在问题中提到。