我计划构建类似 pricegrabber.com/google 产品搜索的东西。
假设我已经在一个巨大的表中拥有了可用的数据。我计划将这一切提交给 Solr。这解决了搜索问题。但是我不确定如何进行比较。我可以通过查询(在 UPC/SKU 上)对 Solr 在 DB 上返回的产品进行分组。但是,我不想那样做。我想以某种方式将产品比较数据与 Solr 本身的搜索一起返回给我。
您认为我的架构应该如何?你认为 Solr/Sphinx 可以解决这个用例吗?
我计划构建类似 pricegrabber.com/google 产品搜索的东西。
假设我已经在一个巨大的表中拥有了可用的数据。我计划将这一切提交给 Solr。这解决了搜索问题。但是我不确定如何进行比较。我可以通过查询(在 UPC/SKU 上)对 Solr 在 DB 上返回的产品进行分组。但是,我不想那样做。我想以某种方式将产品比较数据与 Solr 本身的搜索一起返回给我。
您认为我的架构应该如何?你认为 Solr/Sphinx 可以解决这个用例吗?
您需要“结果分组”或“字段折叠”支持才能正确处理它。
在Solr中,该功能在任何发布版本中都不可用,并且仍在开发中。如果您愿意使用未发布的 Solr 版本,请在此处获取详细信息。
Sphinx支持结果分组,我很久以前在一个类似的项目中使用过它。您可以在此处获得更多详细信息。
另一种策略可能是预处理您的数据,以便每个 UPC/SKU 仅将一条记录插入索引中。每条记录都可以有一个单独的字段,其中包含具有相同 UPC/SKU 的所有商品的 ID。
对 Solr 返回的产品执行数据库 GROUP BY 可能还不够。例如,如果产品 A 和 B 具有相同的 UPC,并且某个查询匹配 A 但不匹配 B,那么您将不会在结果集中同时获得 A 和 B。