从自定义sitecore 7索引中删除记录

时间:2014-07-31 11:39:15

标签: c# lucene sitecore sitecore7

我在Sitecore中创建了一个自定义索引,我想删除一条记录。我必须提一下,这个索引不会索引sitecore项目。

我正在尝试这样的事情:

 public void Delete(IIndexableUniqueId uniqueId)
 {
   ContentSearchManager.GetIndex(Constants.MyIndexName).Delete(uniqueId);
 }

索引没有任何反应。

1 个答案:

答案 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();
  }
}