1

我们正在开发基于 ASP.NET MVC3(C#) 的大型电子商务网站。我们计划实施 Solr 以获得更好的搜索结果。

站点中有一个名为“最受欢迎产品”的功能。顾名思义,它根据客户查看特定产品的次数显示站点上最受欢迎的产品。

在产品详细信息页面或产品列表页面上,我们通过放置一个唯一(最受欢迎的图标)图标来区分它,该图标表示最受欢迎的产品。

现在我们的问题是,我们如何更新产品在 solr 索引中识别为最受欢迎的标志或状态?或者我们如何将这些功能与 solr 联系起来?

注意:更新整个 solr 索引以实现此功能非常昂贵。

4

2 回答 2

2

我能想到几个建议。可能还有更多。

  1. 在单独的 Solr 分片中拥有最受欢迎的产品(您知道的产品和您猜想的产品)。这个核心应该比其他核心小得多。索引更新和提交会更快。

  2. 4.0近实时搜索中有一个 solr 功能。. 您可以在上述核心(甚至整个索引)上使用此功能。此功能需要 solr 4.0

  3. 如果您还不能使用 Solr 4.0,那么就拥有一个“实时”核心和“甲板上”核心。使用新的标志/状态更新甲板核心。提交此新数据后,将 on-deck 与 live core 交换。现在“实时”核心上的新搜索具有新数据。重复。

  4. 在频繁更改索引核心的情况下关闭或减少搜索预热查询。

于 2012-07-12T14:24:28.373 回答
2

Use ExternalFileField to store popularity data for products (it's available in 3.6 too). This lets you update that field without the need to reindex anything.

于 2012-07-12T16:07:59.947 回答