我正在使用 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
策略的正确行为吗?
答案 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。