对于我们基于 RoR 的电子商务网站,我们显示的是产品的分页搜索结果。即使是随机的,这个列表也经常有几个相同品牌的产品聚集在一起。我们想要一个“去簇”的搜索结果,这样同一品牌的产品就不会出现在彼此附近。
例如,如果我拥有属于 50 个品牌的数千种产品,而我在页面上显示的产品少于 50 种,则该页面上每个品牌不应显示超过一种产品(或者最好是某个可配置的最大值)。当用户从一个页面前进到另一个页面时,我必须维护某种“种子”值以传递,以便我可以重新创建搜索顺序。
我可以使用什么算法或策略来完成这个去聚集/随机化的结果?