Doc produitsMenu

Plateforme Coveo 7.0 >
Aide à l'administrateur > Outils Coveo > Éditeur d'interface > Onglet Interface de recherche > Menu Fonctionnalités > Configuration de complètement de requêtes dans les boîtes de recherche

Configuration de complètement de requêtes dans les boîtes de recherche

Vous pouvez configurer et activer la fonctionnalité de complètement de requête en ajoutant du code au fichier CoveoSearch.ascx associé à un skin. La configuration du complètement de requête s'applique à toutes les boîtes de recherche Coveo apparaissant dans des interfaces de recherche à l'aide du skin.

Vous pouvez configurer le complètement de requête pour qu'il utilise un ou plusieurs des fournisseurs suivants.

FileCompletionProvider

Les suggestions de complètement de requête sont prises d'un fichier plat de complètement de texte, enregistré dans le dossier du skin. Le fichier de complètement doit contenir une suggestion par ligne. Une suggestion peut contenir plusieurs mots. Veillez à ce que le fichier soit enregistré avec l'encodage UTF8, afin d'être certain que les caractères spéciaux tels que ceux possédant des accents soient correctement affichés.

Le nom par défaut du fichier est completions.txt, mais vous pouvez utiliser un nom de fichier différent en utilisant l'attribut FileName.

Ordre dans lequel les suggestions apparaissent sous la boîte de recherche :

  1. Les suggestions où la requête tapée correspond au début du premier terme de la suggestion, triées alphanumériquement.

  2. Les suggestions où la requête tapée correspond au début d'autres termes dans la suggestion, triées alphanumériquement.

Astuce : Dans un référentiel de documents, des suggestions de complètement de requête utiles sont les titres de documents disponibles dans le référentiel. Pour des référentiels dont le contenu est relativement statique et qui permet à tous de voir tous les titres des documents, vous pouvez aisément créer un fichier contenant la liste des titres de tous les documents d'un référentiel. Dans une interface de recherche de ce référentiel, exécutez la requête @uri pour retourner tous les documents. Exportez les résultats de recherche vers un fichier Excel (voir Exportation des résultats de recherche vers Microsoft Excel). Copiez le contenu de la colonne Titre dans le fichier completions.txt.

FieldCompletionProvider

Les suggestions de complètement de requêtes sont prises dans la liste de champs disponibles lorsque l'utilisateur tape @, suivi facultativement par d'autres lettres pour affiner la liste de suggestions.

Une fois qu'un champ activé par une facette de type string est sélectionné, suivi par le symbole égal, des suggestions de complètement de requêtes sont prises dans des valeurs de champ correspondantes (voir Ajout d'un champ de facette).

Vous pouvez définir un pseudonyme afin que l'utilisateur n'ait pas à taper la partie @sys du nom de champ.

Vous pouvez également spécifier un champ par défaut (pour les champs de facettes activées de type string seulement), afin que l'utilisateur n'ait pas à taper le nom du champ. Les suggestions sont prises directement des valeurs de champ par défaut.

Ordre dans lequel les suggestions apparaissent sous la boîte de recherche :

  1. Suggestions où la requête saisie correspond au début du premier terme dans la suggestion, trié par :

    1. Nombre décroissant d'occurrences

    2. Ordre alphanumérique

  2. Suggestions où la requête saisie correspond à la requête n'importe où dans la suggestion, une fois de plus trié par :

    1. Nombre décroissant d’occurrences

    2. Ordre alphanumérique

Exemples : Lorsque l'utilisateur tape le début d'un nom de champ comme @sysl, les suggestions correspondent aux noms de champ disponibles.

L'utilisateur peut alors sélectionner un champ de facettes de type string tel que @syslanguage, ajouter un symbole équivalent (=), et commencer à ajouter des caractères afin d'obtenir des suggestions pour des valeurs de champ correspondantes.

Grâce à la définition d'alias de champ <ces:FieldAlias Alias="Concept" Field="@sysconcepts" />, l'utilisateur peut taper Concept: dans la boîte de recherche et commencer à ajouter des caractères afin d'obtenir des suggestions pour des valeurs de champ correspondantes.

Avec le champ @sysconcepts défini comme champ par défaut, les suggestions correspondent directement à des concepts de document.

EmailCompletionProvider

Les suggestions de complètement de requête sont prises dans des champs de courriel expéditeur/destinataire (to, from, cc, bcc).

L'utilisateur obtient des suggestions pour un champ spécifique en tapant un pseudonyme de champ, suivi d'un caractère deux-points, et en tapant alors les premiers caractères du nom.

Ordre dans lequel les suggestions apparaissent sous la boîte de recherche :

  1. Suggestions où la requête saisie correspond au début du premier terme dans la suggestion, trié par :

    1. Nombre décroissant d'occurrences

    2. Ordre alphanumérique

  2. Suggestions où la requête saisie correspond à la requête n'importe où dans la suggestion, une fois de plus trié par :

    1. Nombre décroissant d’occurrences

    2. Ordre alphanumérique

Note : EmailCompletionProvider est activé par défaut dans l'interface de recherche standard Mes courriels.

AnalyticsCompletionProvider

Les suggestions de complètement de requête sont prises dans des requêtes dans l'historique de recherche du module Analytiques.

Vous pouvez configurer la portée des suggestions afin qu'elles soient pour des requêtes passées :

  • Tapée par tous les utilisateurs versus seulement l'utilisateur présent (en utilisant l'attribut LimitToCurrentUser).

  • Tapée dans n'importe quelle interface de recherche versus seulement dans l'interface de recherche présente (en utilisant l'attribut LimitToCurrentInterface).

Aucune suggestion n'est présentée lorsque le module Analytiques est désactivé (voir Déploiement du module Analytiques).

Les suggestions où la requête tapée correspond au début du premier terme de la suggestion sont triées par :

  1. Nombre décroissant d’occurrences

  2. Ordre alphanumérique

Note : AnalyticsCompletionProvider est activé par défaut dans toutes les interfaces de recherche standards, sauf dans Mes courriels.

MetaCompletionProvider

Les suggestions de complètement de requête sont mélangées à partir d'au moins deux fournisseurs de complètement.

Vous pouvez utiliser des fournisseurs de type identique ou différent, mais le mélange de types de suggestion disparates rendra l'utilisateur final confus.

L'ordre dans lequel les suggestions apparaissent sous la boîte de recherche dépend du type de fournisseur de complètement qui est utilisé.

Pour configurer et activer le complètement de requête dans une interface de recherche

  1. Dans le serveur maître Coveo, ouvrez le dossier correspondant au skin utilisé par l'interface de recherche pour laquelle vous souhaitez activer le complètement de requête ([.Net_Front-End_Path]\Web\Coveo\Skins\[Search_Interface_Skin]).

    Vous pouvez trouver le skin utilisé dans une interface de recherche à partir de l'Éditeur d'interface (Onglet Interfaces de recherche > menu Fonctionnalités > page Général).

    Exemple : Le dossier du skin utilisé par l'interface de recherche Mes courriels se retrouve habituellement dans C:\Program Files\Coveo .NET Front-End 12\Web\Coveo\Skins\Email.

  2. À l'aide d'un éditeur de texte :

    1. Ouvrez le fichier CoveoSearch.ascx situé dans le dossier du skin.

    2. Après les instructions d'ASP.NET et avant la balise HTML de contrôle de l'utilisateur, ajoutez l'un des éléments de fournisseur de complètement suivants :

      Exemple : L'échantillon de code suivant affiche le fichier CoveoSearch.ascx par défaut pour le skin par défaut. Remarquez l'emplacement de l'élément <ces:FieldCompletionProvider..>.
      <%@ Control Language="c#" AutoEventWireup="false" Inherits="Coveo.CES.Web.Search.Controls.SearchControl" %>
      <%--**************************************************************************
      * This user control defines the look and structure of the CES search interface.
      **************************************************************************--%>
      
      <ces:FieldCompletionProvider id="fcp" BindTo="Interface" DefaultField="@systitle" runat="server" />
      
      <div class="CesSearch">
        <ces:SearchUpdatePanel id="mup" BlankOnHistory="true" runat="server">
          <ces:LoadIfActive Path="TopMenu.ascx" WithID="t" runat="server"/>
          <ces:LoadIfActive Path="InitialPanel.ascx" WithID="i" runat="server"/>
          <ces:LoadIfActive Path="SearchPanel.ascx" WithID="s" runat="server"/>
          <ces:MainUpdatePanel runat="server">
            <ces:LoadIfActive Path="ResultsPanel.ascx" WithID="rs" runat="server"/>
            <ces:LoadIfActive Path="LoginPanel.ascx" WithID="l" runat="server"/>
            <ces:OpenSearchProvider runat="server"/>
            <ces:SearchBar runat="server"/>
            <ces:DebugInfo runat="server"/>
          </ces:MainUpdatePanel>
        </ces:SearchUpdatePanel>
      </div>
      • Élément FileCompletionProvider :

        <ces:FileCompletionProvider id="fcp" BindTo="Interface" runat="server" FileName="[MyCompletionFile].txt" />

        où vous remplacez [MyCompletionFile] par le nom de votre fichier personnalisé, ou en omettant simplement l'attribut facultatif FileName afin d'utiliser le nom de fichier par défaut completions.txt.

        Important : Le fichier texte comportant les complètements doit être enregistré dans le même dossier de skin.

      • Élément FieldCompletionProvider :

        <ces:FieldCompletionProvider id="fcp" BindTo="Interface" DefaultField="@systitle" runat="server" />
        

        où l'attribut facultatif FieldCompletionProvider est :

        DefaultField

        Spécifie le champ CES à utiliser par défaut pour la source des complètements lorsqu'aucun autre champ ou pseudonyme n'est explicitement spécifié par l'utilisateur.

        Vous pouvez également inclure des pseudonymes facultatifs comme ceux-ci :

        <ces:FieldCompletionProvider id="fcp" BindTo="Interface" DefaultField="@systitle" runat="server">
          <Aliases>
            <ces:FieldAlias Alias="Author" Field="@sysauthor" />
            <ces:FieldAlias Alias="Type" Field="@sysfiletype" />
          </Aliases>
        </ces:FieldCompletionProvider>

        où les attributs facultatifs FieldAlias sont :

        UseAlias

        Définissez cet attribut à True, ce qui fait qu'après la sélection d'une suggestion, le pseudonyme apparaît dans la boîte de recherche et non dans le nom de champ correspondant (ex. : Concept pas @sysconcept). Un pseudonyme CES possédant le même nom doit exister pour le même champ (voir Alias de champs disponibles). Omettez ou laissez cet attribut à False, la valeur par défaut, lorsqu'aucun pseudonyme CES est défini afin d'empêcher l'apparition d'erreurs.

        IsPreloaded

        Définissez cet attribut à True pour charger les valeurs de champ en mémoire cache lorsque la session de recherche commence afin de ne pas attendre que la liste de suggestions apparaisse. Prenez garde : un champ possédant un grand nombre de valeurs peut prendre une partie importante de la mémoire cache. La valeur par défaut est False.

      • Élément EmailCompletionProvider :

        <ces:EmailCompletionProvider id="emcp" BindTo="Interface" runat="server" />
      • Élément AnalyticsCompletionProvider :

        <ces:AnalyticsCompletionProvider id="ancp" BindTo="Interface" runat="server" LimitToCurrentUser="True" LimitToCurrentInterface="True" CompletionTimeout=2 />

        où les attributs facultatifs EmailCompletionProvider sont :

        LimitToCurrentUser

        définis, par défaut, à True afin de limiter la portée de complètement à des requêtes passées tapées par l'utilisateur présent. Définis à False afin d'étendre la portée de complètement à des requêtes passées tapées par tous les utilisateurs.

        LimitToCurrentInterface

        Définis, par défaut, à True afin de limiter la portée de complètement à des requêtes passées tapées dans l'interface de recherche présente. Définis à False afin d'étendre la portée de complètement à des requêtes passées tapées dans n'importe quelle interface de recherche.

        LookForPrefixInsideQueries

        Défini par défaut à False pour ne retourner que des suggestions correspondant au premier terme des suggestions. Défini à True afin de retourner des suggestions qui correspondent au début de n'importe quel terme dans les suggestions.

        CompletionTimeout

        Défini par défaut à 30 secondes, le temps maximal pendant lequel la fonction de complètement de requête attend les suggestions du module Analytiques.

      • Élément MetaCompletionProvider :

        Exemple : Pour utiliser deux fichiers FileCompletionProvider différents :
        <ces:MetaCompletionProvider id="mcp" BindTo="Interface" runat="server">
          <ces:FileCompletionProvider id="fcp1" FileName="ACompletionFile.txt" runat="server" />
          <ces:FileCompletionProvider id="fcp2" FileName="AnotherCompletionFile.txt" runat="server" />
        </ces:MetaCompletionProvider>  

        où l'attribut facultatif MetaCompletionProvider est :

        CompleteWithNext

        Défini, par défaut, à False afin de faire cesser les appels à des fournisseurs de sous-complètement aussitôt qu'un fournisseur rapporte au moins un complètement. Définissez-la à True afin de forcer le fournisseur de méta-complètement à continuer de recevoir des complètements jusqu'à ce qu'il atteigne le nombre maximal de résultats tel que défini par l'attribut MaxCompletions.

        Note : Les fournisseurs de complètement déclarés dans un élément MetaCompletionProvider ne doivent pas inclure un attribut BindTo. S'ils sont présents, ces attributs sont ignorés.

    3. Pour tous les fournisseurs de complètement, vous pouvez utiliser les attributs facultatifs suivants :

      Note : Vous pouvez omettre les attributs facultatifs afin d'utiliser automatiquement la valeur par défaut.

      MaxCompletions

      Détermine le nombre maximal de suggestions à présenter au-dessous de la boîte de recherche. La valeur par défaut est 10.

      CompletionMaxLength

      Détermine le nombre maximal de caractères de suggestion à présenter. Si la longueur d'une suggestion dépasse la valeur maximale, la fin du texte de suggestion est tronquée et remplacée par une ellipse (".."). Lorsqu'une suggestion tronquée est sélectionnée, une infobulle apparaît et présente le texte complet de la suggestion. Ce paramètre est utile afin d'éviter le retour automatique à la ligne pour les longues suggestions. La valeur par défaut est 45.

      Exemple : Personnaliser le nombre maximal de suggestions et le nombre maximal de caractères dans une suggestion
      <ces:FileCompletionProvider id="fcp" BindTo="Interface" runat="server" MaxCompletions="20" CompletionMaxLength="30" />

      QueryFormat

      Permet de personnaliser la requête envoyée à CES selon le texte tapé par l'utilisateur avec le jeton %Value%.

      Exemple : Vous avez configuré FileCompletionProvider avec un fichier contenant les noms des auteurs, mais vous voulez créer automatiquement une requête de champ @author avec la suggestion sélectionnée. Pour procéder ainsi, vous pouvez configurer le fournisseur de complètement ainsi :
      <ces:FileCompletionProvider id="fcp" BindTo="Interface" QueryFormat='@sysauthor="%VALUE%"' runat="server" />  

      Si la valeur suggérée sélectionnée est John Smith, la requête qui apparaîtra alors dans la boîte de recherche est @sysauthor="John Smith" plutôt que seulement John Smith, assurant ainsi que seuls les documents possédant cette valeur de champ, et non les documents qui contiennent John Smith, sont retournés.

      Il est recommandé de mettre des guillemets autour de la valeur de replacement afin de ne pas briser les suggestions contenant des espaces, et ainsi entourer la valeur QueryFormat d'apostrophes, comme dans l'exemple suivant :

      Exemple : QueryFormat='@author="%VALUE%"'

      Note : Vous pouvez également lier un fournisseur de complètement à un hub (BindTo="Hub"); ainsi, les champs de recherche de toutes les interfaces de recherche du hub hériteront du fournisseur de complètement. Une déclaration BindTo="Interface" de fournisseur de complètement située dans un habillage supprime le fournisseur de complètement lié au hub pour des champs de recherche dans une interface de recherche utilisant cet habillage. Vous pouvez également lier un fournisseur de complètement à un contrôle spécifique, ce qui supprimera un fournisseur de complètement lié à l'habillage.

    4. Les caractères correspondant à des requêtes sont en gras par défaut dans la liste de suggestions, mais vous pouvez personnaliser l'apparence du surlignage en ajoutant au fichier CoveoSearch.ascx les classes CSS affichées dans l'exemple suivant, et adapter le code CSS à votre goût.

      Exemple : Avec les classes CSS :
      <style type="text/css">
        .CnlAutoCompleteDropdownItem span
        {
          color: red;
        }
      
        .CnlAutoCompleteDropdownItemSelected span
        {
          color: blue;
        }
      </style>  

      Si l'utilisateur tape jo, la section allongée dans la suggestion <span>Jo</span>hn Smith apparaît en rouge dans la liste et en bleu lorsque le curseur se trouve sur la suggestion.

    5. Sauvegardez les changements apportés au fichier.

    Note : Par défaut, le fournisseur attend 250 ms après qu'un utilisateur commence à taper pour obtenir et proposer des suggestions. Le fournisseur n'attend pas un nombre minimal de caractères. Vous pouvez modifier le délai en ajoutant l'attribut TypingDelay="500" dans le contrôle <ces:query/> des skins (InitialPanel et SearchPanel). Le fournisseur attend pendant ce nombre de millisecondes après la dernière frappe pour faire l'appel AJAX afin d'obtenir les complétions.

  3. Enlevez la cache de votre navigateur et rechargez la page de l'interface de recherche pour confirmer que les suggestions de complètement de requête sont disponibles dans la boîte de recherche.