我们已经在sitecore中存储了不同的语言版本内容,我们需要为每种语言创建不同的索引,如果我们有意大利语和法语版本的主页,则存储为版本,然后我们需要不同语言版本的主页的不同索引,我有任何我索引配置文件
的设置欢呼GA
做到这一点的唯一方法是创建自定义爬网,以下是将英语配置为索引语言的示例代码,我认为您可以从那里开始:
所有信息都可以在此处找到:https://ggullentops.blogspot.be/2016/10/custom-sitecore-index-crawler.html
private string indexLanguage;
public string Language
{
get { return !string.IsNullOrEmpty(indexLanguage) ? indexLanguage : null; }
set { indexLanguage = value; }
}
protected override void DoAdd(IProviderUpdateContext context, SitecoreIndexableItem indexable)
{
Assert.ArgumentNotNull(context, "context");
Assert.ArgumentNotNull(indexable, "indexable");
using (new LanguageFallbackItemSwitcher(context.Index.EnableItemLanguageFallback))
{
Index.Locator.GetInstance<IEvent>().RaiseEvent("indexing:adding", context.Index.Name, indexable.UniqueId, indexable.AbsolutePath);
if (!IsExcludedFromIndex(indexable, false))
{
foreach (var language in indexable.Item.Languages)
{
// only include English
if (!language.Name.Equals(indexLanguage, StringComparison.OrdinalIgnoreCase))
{
continue;
}
Item item;
using (new WriteCachesDisabler())
{
item = indexable.Item.Database.GetItem(indexable.Item.ID, language, Version.Latest);
}
if (item == null)
{
CrawlingLog.Log.Warn(string.Format(CultureInfo.InvariantCulture, "SitecoreItemCrawler : AddItem : Could not build document data {0} - Latest version could not be found. Skipping.", indexable.Item.Uri));
}
else
{
SitecoreIndexableItem sitecoreIndexableItem;
using (new WriteCachesDisabler())
{
// only latest version
sitecoreIndexableItem = item.Versions.GetLatestVersion();
}
if (sitecoreIndexableItem != null)
{
IIndexableBuiltinFields indexableBuiltinFields = sitecoreIndexableItem;
indexableBuiltinFields.IsLatestVersion = indexableBuiltinFields.Version == item.Version.Number;
sitecoreIndexableItem.IndexFieldStorageValueFormatter = context.Index.Configuration.IndexFieldStorageValueFormatter;
Operations.Add(sitecoreIndexableItem, context, index.Configuration);
}
}
}
}
Index.Locator.GetInstance<IEvent>().RaiseEvent("indexing:added", context.Index.Name, indexable.UniqueId, indexable.AbsolutePath);
}
}