1

我有以下任务:更新商业目录(使用 xml 文件完全刷新)并在此之后重建商业索引(commerce_products_web_index,commerce_products_master_index)。我们的解决方案目前正在使用 Solr 提供程序。两个商业索引(上图)在配置文件中都有“手动”索引重建策略。

当前问题:成功完成商业目录完全刷新后,我正在尝试一一重建商业索引(检查索引作业的状态)。

Job job = IndexCustodian.FullRebuild(ContentSearchManager.GetIndex(indexName), true);

第一个索引目前没有以正确的方式重建。它仅包含所有已配置语言的根项目(目录名称)。第二个索引包含所有必需的产品和类别。“第一个”是指 - 按顺序排列的列表中的第一个索引。如果我更改索引的顺序 - 问题将是相同的,并且与某些特定索引无关。

在爬取日志中,我发现了很多与遗漏项目相关的错误(在重建第一个索引期间)。据我了解,旧项目(产品/类别)已在目录刷新时被删除,但 Sitecore 仍在尝试使用它们的 ExternalId 找到它们(以索引):

    10252 13:31:15 WARN  Crawler : Add failed - 6d7291fb-8b92-4f67-b4c4-0b72b608c907
Exception: System.ArgumentNullException
Message: Value cannot be null.
Parameter name: item
Source: Sitecore.Kernel
   at Sitecore.Diagnostics.Assert.ArgumentNotNull(Object argument, String argumentName)
   at Sitecore.ContentSearch.SitecoreIndexableItem..ctor(Item item)
   at Sitecore.Commerce.Connect.CommerceServer.Search.CatalogCrawler.DoAdd(IProviderUpdateContext context, CommerceIndexableItem indexable)
   at Sitecore.ContentSearch.FlatDataCrawler`1.<>c__DisplayClassc.<Add>b__9(T indexable, ParallelLoopState loopState)

它是否与自动将商业目录中的产品引用添加到 Sitecore 树的数据提供者有关?据我所知,Sitecore 不会将这些数据存储在其数据库中,而只是直接从 Commerce Catalog 获取数据(配置了一些缓存)。有没有人遇到过类似的问题?

我会很感激任何建议。

先感谢您。

4

0 回答 0