Fermer

décembre 4, 2020

Ajustez vos index de recherche Episerver en indexant uniquement le contenu nécessaire


Episerver Find est un moyen efficace et simple d'intégrer la recherche dans votre site Web alimenté par Episerver. Cependant, un aspect souvent négligé est de garder vos index de recherche allégés. Par défaut, Episerver indexera toutes les instances de contenu de votre site Web, qu'il s'agisse de pages, de blocs, de médias ou de dossiers – Find ne s'en soucie pas et indexera tout cela. Si vous suivez les principes de conception atomique ou avez un volume de contenu assez important, vous constaterez peut-être que vous atteignez les limites de votre index prématurément. Plutôt que d'augmenter votre abonnement à l'aveugle, vous devriez d'abord vérifier si tout le contenu de votre index est nécessaire.

Affichage des types indexés

Pour afficher quelques diagnostics de base sur votre index, connectez-vous à Episerver et accédez à la recherche outil. Dans l'onglet Présentation, vous devriez voir une liste de tous les types de contenu que vous avez indexés, ainsi que le nombre d'éléments dans l'index. Par exemple, cela peut ressembler à ceci:

 SAS IDC Episerver Commerce Guide

 Episerver Index Overview

Comme vous pouvez le voir, nous avons plus de 91 000 éléments dans l'index, dont 77 000 de type EPiServer.Core.ContentAssetFolder .

Suppression d'entrées de votre index

Dans la plupart des cas, la recherche avec Find tourne généralement autour de la recherche de pages. Nous avons rarement besoin d'utiliser Find pour extraire d'autres éléments tels que des blocs ou des dossiers (bien que cela puisse parfois être utile au niveau de l'API). Pour cette raison, nous pouvons les exclure complètement de notre index. Non seulement cela réduira un peu plus les performances de votre index (bien que probablement négligeable), mais cela peut également vous faire baisser un niveau de tarification en termes de volume de contenu dont vous avez besoin. Pour supprimer des éléments de votre index, ajoutez ceci à votre configuration de recherche:

[ModuleDependency (typeof (FindInitializationModule), typeof (IndexingModule))]
 public class FindInitialization: IInitializableModule
{
    booléen statique privé _initialized;

    public void Initialize (contexte InitializationEngine)
    {
        if (_initialisé)
            revenir;
       
        // Supprimer des éléments spécifiques par type. Dans notre cas, nous ne voulons pas d'images ou de notre type de base pour
        // tous les blocs à indexer. Extension avec des types supplémentaires si nécessaire
        ContentIndexer.Instance.Conventions.ForInstancesOf  (). ShouldIndex (p => false);
        ContentIndexer.Instance.Conventions.ForInstancesOf  (). ShouldIndex (p => false);

        // inclure toute logique supplémentaire liée aux champs calculés, etc.
        
        _initialized = vrai;
    }

    public void Uninitialize (contexte InitializationEngine) {}
} 

Pour le contexte, sur un projet récent, nous avons constaté que notre indice avait baissé d'un ordre de grandeur entier en quantité. J'espère que cela vous aidera!

À propos de l'auteur <! -: dmccurry, Architecte de solutions ->

Je suis un développeur Sitecore certifié, un singe de code et un nerd général. J'ai sauté dans l'espace .NET il y a 10 ans pour travailler sur des applications de classe entreprise et je n'ai jamais regardé en arrière. J'adore créer des choses, des Legos aux logiciels qui résolvent de vrais problèmes. Ai-je mentionné J'adore les jeux vidéo?

Plus de cet auteur






Source link