【问题标题】:Sitecore8 : On publish Indexing strategySitecore8:关于发布索引策略
【发布时间】:2015-10-21 13:41:15
【问题描述】:

目前我已经为所有三个数据库(master、web 和 core)配置了IntervalAsynchronousStrategy,它们在指定的时间间隔后重建索引,但我想更改索引策略,以便只在发布后而不是在每个指定时间后进行索引间隔。我尝试通过在配置文件中仅为主数据库定义以下配置来更改策略:

<onPublishEndAsync type="Sitecore.ContentSearch.Maintenance.Strategies.OnPublishEndAsynchronousStrategy, Sitecore.ContentSearch">
      <param desc="database">master</param>
      <CheckForThreshold>true</CheckForThreshold>
</onPublishEndAsync>

将此策略与索引相结合:

<indexes hint="list:AddIndex">
      <index id="sitecore_master_media_index" type="Sitecore.ContentSearch.LuceneProvider.LuceneIndex, Sitecore.ContentSearch.LuceneProvider">
        <param desc="name">$(id)</param>
        <param desc="folder">$(id)</param>
        <param desc="propertyStore" ref="contentSearch/indexConfigurations/databasePropertyStore" param1="$(id)" />
        <configuration ref="contentSearch/indexConfigurations/defaultLuceneIndexConfiguration" />
    <strategies hint="list:AddStrategy">
          <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/onPublishEndAsync" />
        </strategies>
        <commitPolicyExecutor type="Sitecore.ContentSearch.CommitPolicyExecutor, Sitecore.ContentSearch">
          <policies hint="list:AddCommitPolicy">
            <policy type="Sitecore.ContentSearch.TimeIntervalCommitPolicy, Sitecore.ContentSearch" />
          </policies>
        </commitPolicyExecutor>
        <locations hint="list:AddCrawler">
          <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
            <Database>master</Database>
            <Root>{9076FDC8-33B3-4B97-AC32-640F3481C37F}</Root>
          </crawler>
        </locations>
      </index>

在发布编辑的项目之前,我从/AppData/indexes中删除了“sitecore_master_media_index”的索引文件夹。然后发布了该项目,但发布后未创建索引文件夹。

我是否缺少任何配置?

【问题讨论】:

  • Marek 的回答对您有用吗?如果是,请将其标记为已接受。

标签: indexing sitecore sitecore7.2 sitecore8


【解决方案1】:

OnPublishEndAsync 策略仅适用于作为发布目标的数据库。在大多数情况下,它只是web 数据库。此策略仅在启用EventQueue 时有效。

对于您的主数据库,您应该使用syncMasterintervalAsyncMaster 策略。

有关详细信息,请阅读 John West 的 Sitecore: Index Update Strategies 博客文章。

【讨论】:

  • 正如您所建议的,我仅将“OnPublishEndAsync”策略用于“Sitecore_web_media_index”的 Web 数据库以及我使用过的所有 Web 索引,但出现以下错误:“找不到配置节点:contentSearch/indexConfigurations/indexUpdateStrategies/OnPublishEndAsync "
  • 应该在Sitecore.ContentSearch.DefaultConfigurations.config文件中定义
猜你喜欢
  • 2013-07-25
  • 2012-12-22
  • 1970-01-01
  • 1970-01-01
  • 2014-04-18
  • 2015-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多