索引中多种类型的 Elasticsearch 分页
Elastic search paginating on multiple types in an index
我有一个包含多种类型的索引,如下所示:
- 歌曲
- 书籍
- 电影
我正在构建一个 API 来建议按类型分组的索引项,问题是我想在每个聚合中有一个 size
功能,就像 completion suggester
方法一样returns 每种类型的确切项目数。我最终使用多索引查询方法分别查询每种类型,有没有更好的方法来处理这个问题?
您指定的每个聚合都可以有一个与之关联的过滤器,因此您可以
以这种方式将聚合的上下文减少到特定类型。此外,
您可以使用 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
希望对您有所帮助,如果我误解了您的问题请告诉我(这是一个
不太确定你是在谈论建议者还是聚合,因为
两者都在问题中提到了)。
我有一个包含多种类型的索引,如下所示:
- 歌曲
- 书籍
- 电影
我正在构建一个 API 来建议按类型分组的索引项,问题是我想在每个聚合中有一个 size
功能,就像 completion suggester
方法一样returns 每种类型的确切项目数。我最终使用多索引查询方法分别查询每种类型,有没有更好的方法来处理这个问题?
您指定的每个聚合都可以有一个与之关联的过滤器,因此您可以
以这种方式将聚合的上下文减少到特定类型。此外,
您可以使用 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
希望对您有所帮助,如果我误解了您的问题请告诉我(这是一个 不太确定你是在谈论建议者还是聚合,因为 两者都在问题中提到了)。