la seule façon de le faire est de créer un robot personnalisé, suivant est un exemple de code qui configure les Anglais langue que la langue de l'index, je pense que vous pouvez commencer à partir de là:
Toutes les informations se trouvent ici: 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);
}
}
Voulez-vous dire différentes versions linguistiques des articles? Pourquoi voulez-vous créer des index séparés pour eux? Ajoutez simplement votre langage contextuel à la requête et vous recevrez uniquement des résultats de recherche dans la langue de votre choix. –
Oui différentes versions différentes d'éléments puisque notre contenu est énorme pour chaque langue et pour d'autres raisons nous avons besoin d'index différents pour chaque langue – user2332873