【问题标题】:Lucene with sitecore is the index updated automatically? If not then how I can update the index?带有sitecore的Lucene会自动更新索引吗?如果没有,那么我如何更新索引?
【发布时间】:2016-01-14 15:52:38
【问题描述】:

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

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

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

【问题讨论】:

    标签: sitecore sitecore7.2


    【解决方案1】:

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

    在 Sitecore 中,您有几种索引更新策略:

    1. IntervalAsynchronousStrategy (intervalAsyncCore, intervalAsyncMaster):按照配置,定期检查历史引擎以获取要索引的更新数据。在某种程度上,重建索引可能比更新它更有效。默认配置将 CheckForThreshold 属性设置为 true,如果从历史引擎确定的受影响项目的数量超过 Web.config 文件中 ContentSearch.FullRebuildItemCountThreshold 设置指定的值,则会导致完全重建索​​引。如果此设置不存在(根据标准配置),其默认值为 100,000。Core 数据库的 sitecore_core_index 索引的默认配置(在 /App_Config/Include/Sitecore.ContentSearch.Lucene.Index.Core.config Web .config 包含文件)以一分钟的间隔使用此策略。
    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):远程主机上管理的索引可以使用此策略在其他主机上完成完全重建后执行完全索引重建。例如,当用户通过用户界面在内容管理环境中重建索引时,内容交付实例中的索引可以使用此策略来强制重建。此策略订阅 indexing:end:remote 事件默认配置不会将此策略应用于任何索引。
    6. SynchronousStrategy (syncMaster):此策略在各种事件发生后立即重新索引更新的数据。在初始化时,此策略附加到低级数据引擎中的事件以提供几乎实时的索引更新。在单实例环境中,此策略可保证在数据更改后立即更新索引。在多实例环境中,此策略适用于广播触发索引的远程事件的事件队列。就机器资源而言,这是最昂贵的索引策略,只能在有限的情况下使用。此策略适用于内容管理环境,并且很可能永远不会适用于内容交付环境,除非实时索引更新是绝对关键的。您不应将此策略与除 RemoteRebuildStrategy 之外的任何其他策略结合使用。 Master 数据库的 sitecore_master_index 索引的默认配置(在 /App_Config/Include/Sitecore.ContentSearch.Lucene.Index.Master.config Web.config 包含文件中配置)应用此策略。

    您可以在此处找到有关站点核心索引策略的更多信息 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

    【讨论】:

      【解决方案2】:

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

      每次更新、创建或删除项目时

      如果您开始弄乱您的配置,您可以通过多种方式阻止它。

      【讨论】:

        猜你喜欢
        • 2016-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多