0
我有一个Sitecore内容结构,其中任何单个项目都可以有多个用于存储列表的可枚举内容(显然是相当标准的方法)的子项目。我希望索引这些项目,但将其索引数据存储在Lucene的父文档中。这应该有希望加快搜索位,通过节省时间排序通过多个结果,所有结果都指向相同的URL。以下是我将实现的自定义索引器的一些基本代码。Sitecore Lucene索引 - 在父Lucene中保存子字段值doc
任何人都可以让我知道如果这是(一)可能和(二)一个好主意?我看到的主要问题是Lucene文档看起来已经创建 - 我是否需要删除它?另外,如果父项的Lucene文档不存在,是否需要创建它?当父项被索引时,它会被覆盖/丢失。看起来有点冲突的地方。
另一种选择是,我不索引子项目,但获得他们的价值,当我索引的父母。现在我想到了,这似乎是更好的方式去..意见?
public class CustomIndex : Sitecore.Data.Indexing.Index
{
public CustomIndex(string indexName): base(indexName) {}
protected override void AddFields(Item item, Document document)
{
//is item a sub-item (promo item)
if (...)
{
//delete the sub-item lucene doc
DeleteDoc(document); //is this possible or needed?
//get parent item
Item parentItem = item.Parent;
//get lucene document for parent item
Document parentDoc = GetParentDoc();
//add fields to parent item lucene document
parentDoc.Add(...);
parentDoc.Add(...);
}
else
{
base.AddFields(item, document);
}
}
}
我同意你的意见。 您也可以决定重写Sitecore.Search.Crawlers.DatabaseCrawler,以便您不必处理很多数据。 – 2010-01-04 09:44:52