我在Sitecore中创建了一个自定义索引,我想删除一条记录。我必须提一下,这个索引不会索引sitecore项目。
我正在尝试这样的事情:
public void Delete(IIndexableUniqueId uniqueId)
{
ContentSearchManager.GetIndex(Constants.MyIndexName).Delete(uniqueId);
}
索引没有任何反应。
答案 0 :(得分:3)
如果您有自定义索引(不是sitecore项目),则应索引表示唯一ID的字段。
[IndexField("_uniqueid")]
public override IIndexableUniqueId UniqueId
{
get
{
return new IndexableUniqueId<string>("uniqueidvalue");
}
}
我将使用&#34; uniqueidvalue&#34;以这种方式从索引中删除:
public void Delete(IIndexableUniqueId uniqueidvalue)
{
using (IProviderDeleteContext deleteContext = ContentSearchManager.GetIndex(Constants.MyIndexName).CreateDeleteContext())
{
deleteContext.Delete(uniqueidvalue);
deleteContext.Commit();
}
}