我已根据this one
等示例实施了自定义PredicateEvaluator
以使用存储桶创建构面
似乎工作正常。我可以看到我的桶中的数量根据标准而变化。
但接下来会发生什么?该查询返回SearchResult
,其中包含Hit
个集合和Facet
集合(后者又有Bucket
个集合),但我看不到结合这些集合的方法 - 我找不到Hit.getBuckets()
或Buckets.getHits()
方法。我认为我可以使用存储分区对搜索结果进行分类,但我没有看到任何方法将Hit
与Bucket
相关联。我如何确定哪些匹配落在哪个桶中,或者这不是它们的用途?
答案 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();
这种方法要求您执行另一次搜索,这可能比您想要的更多开销。