0

通过单击后台的星号来制作产品英雄产品。它将显示在顶部。然后转到管理视图并更改该产品的详细信息,即分阶段版本中该产品的标识符或摘要,然后同步此。然后去商业搜索视图,看看我们做英雄产品的产品现在不是英雄产品,它在做英雄产品之前的地方。

任何人都可以有想法吗?我认为,在编辑该产品的任何细节后它应该是英雄产品它应该在编辑产品细节后在顶部看到。

4

2 回答 2

0

我认为您需要通过在后台更新 Solr 索引来重新索引 solr,您可以通过单击 Hot Update Index 按钮来执行此操作,您会找到它:

Administration -> System -> facet Search -> Facet search config -> Hot Update Index
于 2017-05-25T11:15:08.750 回答
0

在 Hybris 中使产品成为英雄产品只是为给定的产品代码添加了令人难以置信的高提升分数。由于这是针对 SOLR 的查询时操作,而不是索引时操作,因此仅执行重新索引不会解决此问题。

根据经验,这听起来最接近的是缓存问题。由于 Backoffice 商务搜索和店面共享相同的服务代码,如果您添加了 EhCache 等缓存策略,您可能会发现每次都保留结果集,因为它跳过 SOLR 并从缓存中获取结果.

测试缓存场景

您应该能够通过执行以下操作来测试该理论:

  • 如果您有缓存,请尝试找到使用的策略,并确定其驱逐策略和生存时间(即 LFU 和 30 分钟 TTL)
  • 转到后台中的商务搜索透视图
  • 选择一个类别
  • 选择一个产品来做一个英雄产品
  • 暂时这应该将其提升到页面顶部
  • 更改类别一次,然后返回上一个类别
  • 您应该再次复制该问题,现在仔细检查店面以查看结果集是否相同
  • 现在等待您的缓存的生存时间。如果您没有 TTL,而是有一个空闲时间,那么您需要确保没有其他人访问缓存中的相同元素
  • 物品过期后,返回后台
  • 如果您的 Hero 产品现在显示在正确的位置,您就会知道缓存是问题所在。您还可以在店面再次检查,看看您的英雄产品现在是否已正确销售

修复缓存的建议

您可以简单地找到使用缓存策略的 Spring Bean(可能是 productSearchFacade),然后重新配置,以便 Backoffice 和店面不再使用缓存。然而缓存显然是一个有价值的工具,所以我建议至少把它留在店面。这将意味着在后台所做的任何更改只会在缓存元素过期后反映在店面中,但至少您应该能够通过 Commerce Search 透视图正确地进行商品销售。

其他根本原因分析方法

如果缓存不是问题,我强烈建议您通过 Hybris 管理控制台将两个类的日志记录级别更改为 DEBUG(取决于您选择的是旧策略还是默认策略)

LegacyFacetSearchStrategy

DefaultFacetSearchStrategy

这将为您启用原始 SOLR 查询的日志记录。这为您提供了在http://localhost:8983上使用 SOLR 管理控制台并测试不同场景所需的原始数据。

于 2017-05-25T15:52:58.453 回答