针对每种产品的一组产品的最低价格计算价格范围

zfciruhq  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(272)

我需要创建一个solr查询,根据每个产品的一组产品的最低价格来查询价格范围。
我们可以很容易地使用价格字段来确定镶嵌面范围,如下所示:

"facet":{
        "price":{
            "type":"range",
            "field":"price",
            "start":0,
            "end":"2000",
            "gap":"500",
            "other":"after"
      }
}

但这里的要求是,我们需要将价格与一组匹配产品的最低价格进行比较。意味着,对于id为1000的产品,将有n个匹配产品(如产品id 10011002、1003等)。对于每种产品,我们需要将其与这些匹配产品的最低价格进行比较。
例如,下面的查询返回匹配产品的最低价格:

"query":"_text_:*",
    "offset":0,
    "limit":0,
    "filter":["tagmacthedid:585200 || tagmacthedid:585226 || tagmacthedid:1197970"],
    "facet":{
         prices585226: {
                type: query,
                q: "tagmacthedid:585226",
                facet: {
                    price_min:"min(price)",
                    price_max:"max(price)"
                },

        },
         prices585200: {
                type: query,
                q: "tagmacthedid:585200",
                facet: {
                    price_min:"min(price)",
                    price_max:"max(price)"
                },

        }
    }
}

这将返回结果集:

"facets": {
        "count": 18,
        "prices585226": {
            "count": 14,
            "price_min": 49.0,
            "price_max": 2999.0
        },
        "prices585200": {
            "count": 4,
            "price_min": 175.0,
            "price_max": 1075.0
        }
    }

但问题是我们需要根据最低价格(产品的匹配产品(Tagmathedd))获得价格计算范围
如果你有办法解决这个问题,请告诉我。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题