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