带有sitecore的Lucene是自动更新的索引吗?如果没有那么我如何更新索引?

时间:2016-01-14 15:52:39

标签: sitecore sitecore7.2

这是我第一次将Lucence与Sitecore结合使用,我想知道当项目更新/编辑时,该项目的索引是否会自动更新?

如果没有,那么每当项目更新时更新Lucene索引的最佳方法是什么?

关于Index and Searching的Sitecore文档说“每次更新,创建或删除项目时,Sitecore都会运行更新索引的作业”。但我无法对Lucene找到同样的意见。

2 个答案:

答案 0 :(得分:2)

您正在查看错误的链接。您提供给我们的链接是6.6链接,但您的问题是Sitecore 7.2标签。从Sitecore 7开始,搜索提供程序已更改。您需要查看Sitecore 7文档。

在Sitecore中,您几乎没有类型的索引更新策略:

  1. IntervalAsynchronousStrategy(intervalAsyncCore,intervalAsyncMaster):根据配置,定期检查历史引擎以获取要更新的数据以进行索引。在某些卷上,重建索引比更新索引更有效。默认配置将CheckForThreshold属性设置为true,如果从历史引擎确定的受影响项目数超过Web.config文件中ContentSearch.FullRebuildItemCountThreshold设置指定的值,则会导致索引完全重建。如果不存在此设置(根据标准配置),则其默认值为100,000.核心数据库的sitecore_core_index索引的默认配置(在/App_Config/Include/Sitecore.ContentSearch.Lucene.Index.Core.config Web中配置) .config include file)使用此策略,间隔为一分钟。
  2. ManualStrategy(手动):此策略禁用自动索引更新。尽管您可以通过编程手动更新任何索引,但使用此策略的任何索引都需要手动或程序更新。默认配置不会将此策略应用于任何索引。您不应将此策略与任何其他索引重建策略结合使用。此策略的目的是针对特定情况,例如整个索引过程发生在单独的专用实例上,这意味着本地实例不需要执行任何索引操作。
  3. OnPublishEndAsynchronousStrategy(onPublishEndAsync):由publish:end和publish:end:remote事件触发,此策略使用事件队列确定要逐步索引的更新数据。如果数据库的历史记录引擎中没有条目,并且在索引的上次更新之后没有时间戳,则此策略不执行任何操作。默认情况下,Sitecore 7根据需要启用事件队列以使用此策略。默认配置将此策略的CheckForThreshold设置设置为true,如果历史记录表指示超过配置的更新项目数,则会导致完整索引重建。在/App_Config/Include/Sitecore.ContentSearch.Lucene.Index.Web.config Web.config包含文件中配置的名为web的默认发布目标数据库的sitecore_web_index索引的默认配置应用此策略,该策略适用于发布目标数据库。您不应将此策略与SynchronousStrategy策略或IntervalAsynchronousStrategy结合使用。您可以将此策略与使用SwitchOnRebuildLuceneIndex实现的索引一起使用,该实现索引到临时目录以避免在索引编制期间影响索引的使用。

  4. RebuildAfterFullPublishStrategy(rebuildAfterFullPublish):此策略在网站发布或任何完整发布事件后执行索引的完全重建。对于单个索引,您不应将此策略与SynchronousStrategy策略结合使用,但您可以将其与其他策略结合使用。如果将此策略与OnPublishEndAsync策略结合使用,请确保在OnPublishEndAsync策略之前注册RebuildAfterFullPublishStrategy。 Sitecore根据配置的顺序调查策略。使用此订单,您可以尽可能使用有效策略(在小型发布操作之后),但不是在完整索引重建之后立即使用。

  5. RemoteRebuildStrategy(remoteRebuild):远程主机上管理的索引可以使用此策略在其他主机上完成完全重建后执行完整索引重建。例如,当用户通过用户界面在内容管理环境中重建索引时,内容传递实例中的索引可以使用此策略强制重建。此策略订阅索引:end:remote事件默认配置不会将此策略应用于任何索引。
  6. SynchronousStrategy(syncMaster):此策略在各种事件发生后立即重新索引更新的数据。在初始化时,此策略附加到低级数据引擎中的事件,以提供几乎实时的索引更新。在单实例环境中,此策略可在数据更改后立即保证索引更新。在多实例环境中,此策略适用于广播触发索引的远程事件的事件队列。就机器资源而言,这是最昂贵的索引策略,只能在有限的情况下使用。此策略适用于内容管理环境,并且很可能永远不会内容交付环境,除非实时索引更新绝对关键您不应将此策略与除RemoteRebuildStrategy之外的任何其他策略相结合。 master数据库的sitecore_master_index索引的默认配置(在/App_Config/Include/Sitecore.ContentSearch.Lucene.Index.Master.config Web.config包含文件中配置)适用此策略。
  7. 您可以在此处找到有关sitecore索引策略的更多信息 http://www.sitecore.net/learn/blogs/technical-blogs/john-west-sitecore-blog/posts/2013/04/sitecore-7-index-update-strategies.aspx

    https://dev.sitecore.net/sitecore%20experience%20platform/search%20and%20indexing/index%20update%20strategies

答案 1 :(得分:1)

Lucene是默认的Sitecore索引提供商。在干净的Sitecore实例中,它会自动更新索引

  

每次更新,创建或删除项目

如果你开始搞乱你的配置,你可以用多种方式制动它。