目前我已经为所有三个数据库(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>
在发布已编辑的项目之前,我删除了&#34; sitecore_master_media_index&#34;的索引文件夹。来自/AppData/indexes
。然后发布了该项目,但索引文件夹未在发布后创建。
我错过了任何配置吗?
答案 0 :(得分:2)
OnPublishEndAsync
策略仅适用于作为发布目标的数据库。在大多数情况下,它只是web
数据库。此策略仅在启用EventQueue
时有效。
对于您的主数据库,您应该使用syncMaster
或intervalAsyncMaster
策略。
有关详细信息,请阅读John West的Sitecore: Index Update Strategies博文。