gpt4 book ai didi

solr - 大规模解决定价问题

转载 作者:行者123 更新时间:2023-12-04 18:27:55 26 4
gpt4 key购买 nike

定价问题

问题:

我们有一个商品集合,具有最低和最高价格以及不同商店的最大折扣。

{
"item_id":1,
"price":{
"min":1500.00,
"max":3000.00
},
"max_discount":50
}

现在,我们有不同定价的不同商店,假设商店 S1 有 0% 折扣,S2 有 50% 折扣,S3 有 20% 折扣。这里一个项目可以有 n 个商店。

现在我们有一个案例,我们想要显示基于所选商店的库存,可以是 S1x S2 或 S1 或 S1xS3 等的组合。

在上面的例子中

  • S1xS2:价格以这种方式变化
    • 最低价格:1500
    • 最高价:3000
    • 最大折扣:50%
  • S1:价格以这种方式变化
    • 最低价格:3000
    • 最高价:3000
    • 最大折扣:0%
  • S1xS3:价格以这种方式变化
    • 最低价格:2400
    • 最高价:3000
    • 最大折扣:50%

这里的定价将根据上述给定的解决方案在每个组合上发生变化。

目前,我们在查看所有商店的基础上在产品列表中显示最低和最高价格。我们不会显示基于商店组合的列表定价。

是否有大规模解决此问题的有效方法?

最佳答案

根据我在您的草稿中看到的 id 字段:重复数据删除和规范化这些概念将使您不会在 Solr 中走得太远。它们往往会使事情变得更加复杂和缓慢。但无论如何,回到您的问题。

我会以不同的方式对架构进行建模。基本思想是为每家商店的特定商品建模报价。这样您就可以对此进行汇总。

<fields>
<field name="offer_id" type="int" indexed="true" stored="true" />
<field name="store_id" type="int" indexed="true" stored="true" />
<field name="item_id" type="int" indexed="true" stored="true" />
<field name="price" type="float" indexed="true" stored="true" />
<field name="msrp" type="float" indexed="true" stored="true" />
</fields>
  • offer_id优惠id,一店一件为优惠
  • store_id 如果用户想要过滤某些商店或者如果您想要更新基于商店的索引,则可能需要。如果这不是用例,您也可以忽略它
  • item_id 项目的 ID。我保留了这个,因为您似乎对存储在其他地方的实际项目有更多详细信息,以便您可以使用 API 丰富搜索结果
  • 价格 这是我的主要建议,每个报价只有一个价格。请记住,报价是某家商店中一件商品的报价。
  • msrp 显示实际报价时,制造商的建议零售价可用于计算折扣。您也可以将其命名为 standard_price 或类似名称。

要执行计算,您可以使用 the Stats Component .您也可以添加 Currencies .

一个例子看起来像这样(报价 1 将是 S1,报价 2 将是 S2)

q=offer_id:(1 OR 2)&stats=true&stats.field=price

包含在您将获得的回复中

<lst name="stats">
<lst name="stats_fields">
<lst name="price">
<double name="min">1500.0</double>
<double name="max">3000.0</double>
<!-- etc. -->
<lst name="facets"/>
</lst>
</lst>
</lst>

为了显示最大折扣,我会计算

(min value from the stats component) / (msrp)

例如1500/3000 = 0,5 => 50%

关于solr - 大规模解决定价问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57089481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com