首页 > 解决方案 > ElasticSearch:查询每个类别的N个项目

问题描述

我在 ElasticSearch (5.5) 中有一个商品索引,其中每个产品都有一个“类别”字段,如“GLOVES”、“COAT”、“TOWEL”。

通过terms查询,我可以选择属于多个类别的项目,例如

{
    "terms": {
        "div_id": ["COAT", "DRESS", "JACKET"]
    }
}

现在的问题是,我想响应每种类型的几个项目,比如不少于 3 个(假设答案的总大小是 15 条记录)。

我不清楚如何做到这一点。使用给定的“直接”方式,它可以从任何类别返回任何数字。我得到的最接近的是添加 random_score 这使得结果“多样化”,但它取决于每个类别在索引中所占的百分比。

我怀疑应该有不同的方法,但似乎无法猜测正确的关键字。

提前致谢!

标签: elasticsearch

解决方案


您可能想尝试此处记录的热门歌曲 agg 。


推荐阅读