【发布时间】:2016-02-29 11:28:05
【问题描述】:
我想解决一个与基于类别中的产品进行排序有关的问题:
我有 3 张桌子
产品
|-------id----------|-----name-------|
| p1 | Prod 1 |
| p2 | Prod 2 |
| p3 | Prod 3 |
| p4 | Prod 4 |
| p5 | Prod 5 |
|-------------------|----------------|
类别
|-------id----------|-----name-------|
| c1 | Cat 1 |
| c2 | Cat 2 |
| c3 | Cat 3 |
| c4 | Cat 4 |
|-------------------|----------------|
产品_类别
|-----prod id-------|-----cat id-----|----score----|
| p1 | c1 | 120 |
| p1 | c2 | 130 |
| p2 | c1 | 150 |
| p2 | c3 | 120 |
| p2 | c2 | 140 |
| p3 | c2 | 180 |
| p3 | c3 | 160 |
|-------------------|----------------|-------------|
这意味着我在多个类别中列出了产品。 我有一个通过 solr 查询为每个类别动态生成的列表页面。
目前我的 solr 文档看起来像
{
product_id:p1,
category_id:[c1, c2]
}
我现在面临的挑战是我需要支持基于产品类别权重的排序,即c1的listing页面将按顺序包含产品p2、p1,c3的listing将是p3、p2、p1(分数的降序)
如果我将架构更改为 doc 看起来像
{
product_id:p1,
category_id:[c1, c2],
c1_weight: 120,
c2_weight: 130
}
这样我每次添加新类别时都需要在模式中添加一个字段 cx_weight ,以便我可以按 cx_weight 字段排序。
让我知道一个解决方案,我可以使用 solr 排序机制按类别权重进行排序,并且每次添加类别时都无需更改架构。
谢谢 迪伦德拉
【问题讨论】:
标签: solr