Sitecore Lucene索引更新策略:syncMaster

时间:2016-01-28 10:47:14

标签: lucene sitecore sitecore7.2

我正在使用 syncMaster lucence索引策略(因为我想要实时数据)

<strategies hint="list:AddStrategy">
    <strategy ref="contentSearch/indexUpdateStrategies/syncMaster" />
</strategies>

我正在使用 Luke - Lucene Index Toolbox 来查看索引文档。我想问的问题是,当我重建索引my_country_index时。我知道sitecore中有6个国家/地区项目可供我重建索引。所以Luke我看到了6个文件。

对于以上具有ID&#39; {DEA26CDA-9EA9-4F67-BB3F-13CAF6A68061}&#39;的项目之一对于此项目的每次更新,我都会看到添加了一个附加文档(我看到了Like)。所以在索引中我有这个项目的旧数据和新数据。这是syncMaster策略的正确行为吗?

1 个答案:

答案 0 :(得分:0)

是的,如果您的索引是相关的主数据库,这是Sitecore中的正常行为。在Web数据库中,您只有一个版本可用于项目的每种语言。

您可以实现覆盖自定义行为的自定义搜寻器:

public class CustomIndexCrawler : DatabaseCrawler
{
   protected override void IndexVersion(Item item, Item latestVersion, Sitecore.Search.IndexUpdateContext context)
   {
    if (item.Versions.Count > 0 && item.Version.Number != latestVersion.Version.Number)
        return;

    base.IndexVersion(item, latestVersion, context);
    }
}

这会强制索引只包含项目的最后一个版本。您需要将此自定义抓取工具分配给您的班级

其他选项是查询结果以获取最新版本。   你需要检查_latestversion是否等于1。