不含集合的唯一值查询

时间:2019-02-14 15:50:42

标签: elasticsearch

我们有一个唯一产品索引,其中每个文档代表一个产品,具有以下字段:product_id,group_id,group_score和product_score。 请考虑以下索引:

NSWindowController

每个组包含〜1-200个产品。 我们正在尝试符合以下条件的查询: 1.产品应按其group_score(desc)排序。 2.每个group_id不超过一种产品。 3.获得该组中product_score最高的产品。

例如,对上述内容应用查询应返回:

{
    "product_id": "100-001",
    "group_id": "100",
    "group_score": 100,
    "product_score": 60,
},
{
    "product_id": "100-002",
    "group_id": "100",
    "group_score": 100,
    "product_score": 40,
},
{
    "product_id": "100-001",
    "group_id": "100",
    "group_score": 100,
    "product_score": 50,
},
{
    "product_id": "200-001",
    "group_id": "200",
    "group_score": 73,
    "product_score": 20,
},
{
    "product_id": "200-002",
    "group_id": "200",
    "group_score": 73,
    "product_score": 53,
}

我们最终得到以下查询:

{
   "product_id": "100-001"
},
{
   "product_id": "200-002"
}

问题在于,由于聚合,查询的速度确实很慢,并且搜索性能非常重要。

我们希望听到您对更好/有效解决方案的意见。

更改索引结构是可以容忍的

0 个答案:

没有答案