Skip to content
This repository has been archived by the owner on Oct 3, 2023. It is now read-only.

Latest commit

 

History

History
64 lines (43 loc) · 2.41 KB

tech-algolia.md

File metadata and controls

64 lines (43 loc) · 2.41 KB

Algolia

Certains modèles sont indexés sur Algolia, ce qui permet d'avoir de la recherche à moindre coup (sur du contenu de toute façon statique / open-source).

C'est le cas des entrées de FAQ (FAQEntry)

Pour effectuer des recherches, il y a 2 approches:

  1. Frontend (recommandé par Algolia)
  2. Backend

Le backend n'a pas été encore implémenté, seul le frontend est expliqué ici.

Configuration / credentials

L'environnement de production a ses propres clés, ainsi que développement/test.

Les clés de développement/test se trouvent dans le fichier de credentials, qui est accessible par tout le monde étant donné que la clé de chiffrage est versionnée: ceci n'est pas un souci car les données et le projet Algolia ne sont clairement pas critique et limité à une version d'essai (non payante).

Implémentation frontend

Il existe un controller stimulus algolia-search-with-accordion qui permet d'initialiser la recherche via Algolia.

Celui-ci permet de continuer à utiliser le DSFr en bypassant une partie de la lib instantsearch et ainsi garder la cohérence du design (notamment la partie hits).

Pour le moment celui-ci n'est utilisé que sur /faq, mais reste tout de même assez générique (pas impossible de devoir faire de l'héritage pour implémenter d'autres controller de recherche).

En plus des features classiques de Stimulus, ce controller s'appuie extensivement sur les data-algolia-search-with-accordion-*.

Il faut notamment implémenter:

  • data-algolia-search-with-accordion-hit-attribute pour chaque attribut que l'on veut rendre dans la vue
  • data-algolia-search-with-accordion-hit pour chaque entrée

Vous pouvez jeter un oeil à la page de la FAQ pour voir plus en détails

Reindexation des modèles

rails algolia:reindex

Cette réindexation est effectuée lors du déploiement pour la partie production, et

Ressources