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:
- Frontend (recommandé par Algolia)
- Backend
Le backend n'a pas été encore implémenté, seul le frontend est expliqué ici.
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).
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 vuedata-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
rails algolia:reindex
Cette réindexation est effectuée lors du déploiement pour la partie production, et