Sitecore Solr从索引中删除版本
我正在使用Sitecore 7和Solr Search提供程序。 我目前有网站设置来在发布项目时更新搜索索引。
我注意到,当CMS作者创建项目的不同版本然后将它们提交到索引中时,项目的先前版本不会从索引中删除,因此索引包含同一Sitecore项目的多个版本。
有没有人知道我可以更改的任何设置,以确保在添加新版本之前从索引中删除了以前的版本?
我尝试运行一些代码,如下所示,在发布之前从索引中删除项目,但索引上的Delete方法似乎没有删除任何内容。
var indexableItem = (SitecoreIndexableItem)item; ContentSearchManager.GetIndex(index).Delete(indexableItem.UniqueId
任何帮助非常感谢。
我在这个上联系了Sitecore,他们说这很可能是一个bug,他们正在调查。
作为一种变通方法,Sitecore建议使用入站和出站filter来过滤索引中的项目。
以下是有关此内容的更多信息:
更新:@Jason在下面的评论中指出,现在支持修复此问题 – 请参阅知识库文章 – https://kb.sitecore.net/articles/992608
你真的需要删除旧版本吗? 定义了一个虚拟字段,用于过滤最新版本。 只需将这样的属性添加到您的POCO(或基类)并使用它来过滤您的Linq查询:
[IndexField("_lastestversion")] public bool IsLatestVersion { get; set; }
请注意,默认Solr配置(_lastestversion)中字段的名称与Lucene配置(_latestversion)中的字段名称不同。