Jeudi 14 novembre 2024
Search API Drupal : guide complet pour les développeurs

On sous-estime souvent l’importance d’un bon moteur de recherche sur un site web ou une application. Pourtant, c’est une fonction clé pour les utilisateurs notamment lorsqu’ils sont perdus et peinent à identifier ce qu’ils souhaitent. Cette fonctionnalité devient alors le dernier recours avant… le churn ! Si vous utilisez déjà Drupal, ne manquez pas ce plugin indispensable.

    Un plugin à ne surtout pas manquer !

    Search API Drupal est un module open-source pour le CMS (Content Management System) Drupal qui permet d’optimiser les fonctionnalités de recherche d’un site web. Il a été créé en 2011 par le développeur allemand Thomas Seidl. Depuis, il a connu une évolution constante et des améliorations régulières.

    Au fil du temps, il est devenu l’un des modules de recherche les plus populaires pour Drupal, avec plus de 200 000 installations à ce jour. Il est utilisé par de nombreux sites web de grande envergure, notamment des sites gouvernementaux, des sites de médias, des sites de commerce électronique et des sites de voyages.

    Qu’est-ce que la Search API Drupal ?

    Search API Drupal est un module essentiel pour les développeurs et les administrateurs de sites web, en effet, elle fournit une infrastructure complète pour la recherche, permettant d’indexer le contenu de manière efficace et de le rechercher rapidement. Ce plugin utilise une architecture qui permet un haut niveau de personnalisation grâce à une variété d’options de configuration et de paramètres.

    Pourquoi utiliser la Search API Drupal ?
     

    La Search API Drupal dispose de plusieurs atouts particulièrement intéressants :

    • Une indexation efficace : elle permet d’indexer rapidement les contenus et les données de votre site web, 
    • Une solution hautement personnalisable : elle peut être configurée pour répondre à vos besoins spécifiques. Les développeurs peuvent ainsi définir des champs de recherche, des poids pour les différents champs, et des critères pour mieux répondre aux besoins des utilisateurs.
    • Des filtres avancés : ils sont basés sur des critères tels que les catégories, les dates de publication, etc.
      Des fonctionnalités proposées en temps réel : elles permettent  aux utilisateurs de voir les résultats à mesure qu’ils rédigent leur requête (ou “query”). Cette fonctionnalité améliore considérablement l’expérience.
    • La compatibilité avec d’autres plugins Drupal : comme Facet API, Views, Search Autocomplete, ou encore Search API Solr et Search API Location.
       

    Pré-requis pour l’utilisation de la Search API Drupal

    Rassurez-vous, rien de bien compliqué à ce stade. Si vous êtes parvenus à installer Drupal, vous parviendrez à accomplir toutes ces étapes sans problème.:

    Drupal Core

    La Search API Drupal est un module qui est intégré dans le cœur de Drupal depuis la version 8. Il est donc déjà présent dans le core et n’a pas besoin d’être téléchargé ou installé séparément. Pour l’utiliser, vous devez simplement activer le module.

    Database Search

    Pour utiliser la Search API Drupal, vous devez disposer d’un système de gestion de base de données compatible avec Drupal, tel que MySQL, PostgreSQL ou SQLite. Elle utilise ce système de gestion de base de données pour indexer votre site web et pour fournir des résultats pertinents et rapides.

    Search Facets

    Search Facets est un module complémentaire à la Search API Drupal. Il permet d’ajouter des filtres avancés. Pour l’utiliser, il suffit de les installer et de les activer.

    Search Views

    Search Views est également complémentaire à la Search API Drupal. Il permet aux développeurs de créer des vues de recherche et de personnaliser les “results”. Pour utiliser Search Views, il suffit là encore, de les installer et de les activer. Facile !

    Mise en place de la Search API Drupal

    Une fois ces étapes réalisées, c’est le moment de se lancer pour découvrir les possibilités qu’offre cet outil “tout-en-un”

    Installer le module rapidement

    L’installation est relativement simple. Vous devez d’abord télécharger et installer le plugin sur votre site. Ensuite, vous devez l’activer dans la section du même nom.

    Comment créer un index

    Pour l’utiliser, vous devez commencer par créer un index des contenus de votre site. Pour cela, sélectionnez les champs à indexer (le “title”, le “text”, les tags, la description, etc.)

    Vous pouvez également ajouter des filtres supplémentaires pour améliorer la pertinence des résultats.

    Comment définir les champs

    Dans l’interface d’administration, cliquez sur Configuration, puis sur Search and metadata, et enfin sur Search API. Vous verrez une liste des index actuels et vous pourrez cliquer sur “Add Index” pour en créer un nouveau.

    Ensuite, vous pouvez ajouter des champs en cliquant sur le bouton “Add field” dans l’onglet “Fields” de la configuration de votre index. Vous pouvez sélectionner les champs que vous souhaitez indexer en cochant les cases correspondantes.

    Vous pouvez également personnaliser la façon dont les champs sont indexés en modifiant les paramètres de chacun.

    Par exemple, vous pouvez ajuster leurs poids pour influencer la pertinence des résultats ou ajouter des filtres supplémentaires pour les restreindre.

    Ajout de conditions supplémentaires

    En plus des champs de base, vous pouvez ajouter des conditions supplémentaires. Elles vous permettent de personnaliser l’indexation pour répondre aux besoins spécifiques de votre site web.

    Condition sur un champ boolean

    Les conditions sur les champs booléens permettent de filtrer les “results” en fonction de la valeur d’un champ booléen spécifique.

    Pour ajouter une telle condition, vous devez sélectionner le champ booléen dans la liste de ceux indexés, puis ajouter la condition en cliquant sur le bouton “Ajouter” dans l’onglet “Filters” de la configuration de votre index.

    Vous pouvez ensuite spécifier si vous souhaitez filtrer les “results” qui ont la valeur “True” ou “Null”.

    Condition sur un champ « varchar »

    Les conditions sur les champs “varchar” permettent de filtrer les résultats en fonction de la valeur d’un champ de texte spécifique. Pour ajouter une telle condition, vous devez sélectionner “varchar” dans la liste des champs indexés, puis ajouter la condition en cliquant sur le bouton “Ajouter” dans l’onglet “Filters” de la configuration de votre index.

    Vous pouvez ensuite spécifier la valeur que vous souhaitez filtrer, ainsi que le type de correspondance (par exemple, correspondance exacte, correspondance partielle, etc.).

    Condition sur un champ date

    Les conditions sur les champs de date permettent de filtrer les résultats en fonction de sa valeur. Pour ajouter une telle condition, vous devez sélectionner le champ de date dans la liste des champs indexés, puis ajouter la condition en cliquant sur le bouton “Ajouter” dans l’onglet “Filters” de la configuration de votre index.

    Vous pouvez ensuite spécifier les dates de début et de fin pour filtrer les résultats en fonction de la plage de dates souhaitée. Vous pouvez également spécifier le format de date utilisé dans le champ pour vous assurer que les “results” correspondent aux critères de filtrage.

    Gérer la pagination

    Pour gérer la pagination, vous devez utiliser Views. Comme son nom l’indique, il permet de créer des vues personnalisées avec une pagination intégrée. Pour ajouter une pagination, vous devez tout d’abord créer une vue dans l’interface d’administration : ajoutez un champ “Pager”. Vous pouvez ensuite définir le nombre d’item à afficher par page et personnaliser l’apparence de la pagination.

    Il est également important de noter que la gestion de la pagination peut avoir un impact sur les performances de votre site web, en particulier si vous avez de nombreux items. Pour éviter des temps de réponse trop longs, vous pouvez limiter le nombre affiché par page.

    Configurer correctement le serveur : quelques conseils

    La configuration du serveur de recherche est cruciale pour garantir de bonnes performances de votre site web. Voici quelques pièges courants à éviter :

    • Ne pas utiliser un serveur dédié ;
    • Ne pas utiliser un index optimisé ;
    • Ne pas surveiller les journaux d’erreurs ;
    • Ne pas utiliser une infrastructure redondante : si votre serveur subit une panne de réseau, cela peut entraîner des temps d’arrêt prolongés et une expérience utilisateur médiocre ;
       

    Utilisation de la Search API Drupal

    Comment initialiser une requête

    L’initialisation de la requête est l’étape de traitement durant laquelle les paramètres sont configurés avant d’être envoyés à l’index de recherche. Dans la Search API Drupal, les développeurs peuvent utiliser les hooks et les filtres avant l’envoi de la requête à l’index de recherche.

    Par exemple, le hook hook_search_api_query_alter permet de modifier les paramètres de la requête avant qu’elle ne soit exécutée, tandis que le hook hook_search_api_index_alter permet de modifier les paramètres de l’index de recherche pour optimiser les performances.

    Il est important de noter que cette étape peut avoir un impact significatif sur les performances et l’expérience utilisateur. En configurant correctement les paramètres, il est possible d’améliorer la pertinence des résultats, réduire les temps de réponse et offrir une expérience utilisateur plus fluide et satisfaisante.

    Comment définir une requête

    Les développeurs peuvent utiliser des objets de requête. Voici un exemple :

    use Drupal\search_api\Query\SearchApiQueryInterface;

    // Get the Search API Drupal query object.

    $query = \Drupal::service(‘search_api.query’)->create(‘my_index’);

    // Add keywords to the search query.

    $query->keys(‘search’);

    // Execute the search query.

    $results = $query->execute();

     

    Search API Drupal est un outil fiable, simple et rapide pour proposer un service de qualité à vos clients et à vos utilisateurs. En suivant les bonnes pratiques et en évitant quelques pièges, vous pourrez faciliter l’accès à vos services et à vos produits !

    On en parle ?

    CAPTCHA
    Cette question sert à vérifier si vous êtes un visiteur humain ou non afin d'éviter les soumissions de pourriel (spam) automatisées.

    * Champs obligatoires