Resynchroniser les données Meilisearch avec celles de Strapi
20 Avril 2023 (mis à jour le 24 Juillet 2024)
Du fait de l'indexation document par document imposée par la stratégie d'insertion, modification et suppression d'une entrée dans une collection par Strapi, il peut arriver qu'une désynchronisation se produise entre Meilisearch et Strapi.
Qu'est-ce qui nous met la puce à l'oreille ?
En règle générale, nous nous apercevons de cette désynchronisation lorsque nous tentons d'accéder au détail d'une offre de stage ou d'une annonce de logement et que l'interface utilisateur nous dit que nous n'avons pas trouvé l'offre ou l'annonce.
Que faire ?
- Connectez-vous à l'application
Main CMS
de production, si vous ne savez pas où trouver les identifiants, demandez ; - Arrivé sur l'interface administrateur, vous trouverez un onglet
Meilisearch
sur le panneau de gauche, cliquez dessus ; - Cherchez ensuite dans la liste des collections celle qui pose soucis ;
- Si une désynchronisation est en effet d'actualité, vous devriez voir un différentiel entre le nombre de documents présents en base de données et le nombre d'entrées de la collection dans la base de données de Strapi :
Exemple sans désynchronisation :
Exemple avec désynchronisation :
- Vous voyez un bouton
Update
tout à droite de la ligne qui vous permet de purger les documents de ladite collection sur Meilisearch et de les réindexer par batch, cliquez dessus une fois et soyez patient ; - Attendez un moment puis vérifiez si la désynchronisation a disparu.
- Si vous constatez que l'indexation reste bloquée à 10000 offres, veuillez vous référer à cette documentation pour la partie ETL et celle-ci pour la partie CMS
Si ça ne résout pas le problème ?
Vous pouvez investiguer davantage en manipulant directement l' API de Meilisearch pour voir si l'indexation est toujours en cours ou non, voir si des documents ont bel et bien été envoyés à Meilisearch etc...
Essayez de durcir les méthodes liées à la transformation de vos données dans l'application Main CMS
pour voir si cela
résout votre problème.