【问题标题】:Elastic search paginating on multiple types in an index索引中多种类型的 Elasticsearch 分页
【发布时间】:2015-04-14 08:25:25
【问题描述】:

我有一个具有多种类型的索引,如下所示:

  • 歌曲
  • 书籍
  • 电影

我正在构建一个 API,用于建议按类型分组的索引项,问题是我希望在每个聚合中都有一个 size 功能,就像 completion suggester 方法返回每种类型的确切数量的项目一样。我最终采用了多索引查询方法来分别查询每种类型,有没有更好的方法来处理这个问题?

【问题讨论】:

    标签: elasticsearch autocomplete full-text-search search-suggestion


    【解决方案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

    希望对您有所帮助,如果我误解了您的问题,请告诉我(这是 几乎不确定您是在谈论建议者还是聚合,因为 问题中都提到了两者)。

    【讨论】:

    • 谢谢,我确实需要每个桶上具有确定大小数量的聚合解决方案。
    猜你喜欢
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    相关资源
    最近更新 更多