如何在AEM QueryBuilder中使用Buckets

时间:2016-05-20 19:04:01

标签: cq5 aem

我已根据this one

等示例实施了自定义PredicateEvaluator以使用存储桶创建构面

似乎工作正常。我可以看到我的桶中的数量根据标准而变化。

但接下来会发生什么?该查询返回SearchResult,其中包含Hit个集合和Facet集合(后者又有Bucket个集合),但我看不到结合这些集合的方法 - 我找不到Hit.getBuckets()Buckets.getHits()方法。我认为我可以使用存储分区对搜索结果进行分类,但我没有看到任何方法将HitBucket相关联。我如何确定哪些匹配落在哪个桶中,或者这不是它们的用途?

1 个答案:

答案 0 :(得分:0)

Bucket可用于优化Query

    SearchResult unrefinedResult = query.getResults();
// get a bucket from the unrefined result - in real code you'd iterate.
    Bucket bucket = unrefinedResult .getFacets().get("my_facet").getBuckets().get(0);
    SearchResult refinedResult = query.refine(bucket).getResults();

这种方法要求您执行另一次搜索,这可能比您想要的更多开销。