Recherche et Algolia
Cette page couvre la synchronisation Algolia telle qu’implémentée.
Sources principales :
convex/integrations/algolia.ts
convex/schema.ts
Variables et index (vérifié)
Variables lues :
NEXT_PUBLIC_ALGOLIA_APP_ID
ALGOLIA_WRITE_API_KEY
NEXT_PUBLIC_ALGOLIA_INDEX_NAME (défaut cel_public)
ALGOLIA_ADMIN_INDEX_NAME (défaut cel_admin)
Index destination :
- public :
NEXT_PUBLIC_ALGOLIA_INDEX_NAME
- admin :
ALGOLIA_ADMIN_INDEX_NAME
Types indexés (vérifié)
Public :
club
player
match
article
league
Admin :
user
transfer
sanction
audit_log
ea_unmatched
Le syncer rejette un type inconnu (Unsupported document type for Algolia sync).
syncDocument (unitaire)
- lit/écrit un objet avec
op: upsert|delete,
- si
ALGOLIA_WRITE_API_KEY ou NEXT_PUBLIC_ALGOLIA_APP_ID manquants : skip silencieux avec warning,
- en
delete : suppression directe dans l’index cible,
- en
upsert :
- récupère le payload (
getPublicSearchPayload ou getAdminSearchPayload),
- si payload nul/insuffisant (supprimé, inactif, non publié), tente la suppression sur Algolia,
- sinon
PUT du payload.
Reindex global (vérifié)
Action reindexAllAction(indexType) supporte public | admin | all.
- pagination :
REINDEX_PAGE_SIZE = 100,
- envoi par lot :
ALGOLIA_BATCH_SIZE = 150 vers endpoint batch Algolia,
- pour chaque type public/admin : pagine avec
getPaginated...Payloads jusqu’à exhaustion,
- renvoie
{ success: true }.
Requête de payloads pour reindex
getPaginatedPublicPayloads : source table par type public.
getPaginatedAdminPayloads : source table par type admin.
Index Convex searchIndex (vérifié partiel)
Les occurrences searchIndex(...) observées dans schema.ts :
search_announcements
search_articles
search_audit_logs
search_clubs
search_disputes
search_matches
search_notifications
search_email_delivery_logs
search_sanctions
search_transfers
search_displayName
search_users
Zone non vérifiée
- L’objectif métier de chaque index (quels écrans/frontends les consomment) n’est pas documenté dans ces fichiers. Vérifier côté frontend si nécessaire.
Last modified on June 24, 2026