Indexation : slug_index et search_index peuvent contenir des UUIDs orphelins #53
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problème
Un article supprimé (ou jamais déployé sur un site) reste référencé dans
search_index.jsonetslug_index.json. Quand un visiteur arrive sur son URL :getBySlug()trouve l'UUID dans le slug indexgetByUuid()échoue (dossier absent) → retournenullsearchAndRedirect()est appelé et peut rediriger vers un article complètement différentCas concret :
bienvenue-sur-varlog-carnet-de-bord-techniqueredirigé vers un autre article sur www.abonnel.fr.Ce qui a été corrigé
getBySlug(): sigetByUuid()retourne null, reconstruction automatique du slug index depuisloadAll()(source de vérité)buildSlugIndex(): utiliseloadAll()au lieu degetSearchIndex()— garantit que seuls les dossiers existants sont indexéssearchAndRedirect(): redirige uniquement si le résultat est en tier 1 (tous les tokens du slug trouvés exactement dans le titre), pas sur de simples correspondances flouesReste à faire
Nettoyage de
search_index.jsonLe
search_index.jsonpeut contenir des articles orphelins (UUID sans dossier). Il faudrait :rebuildSearchIndex()qui filtre les UUIDs sans dossier existantsync.shsi le nombre d'articles a diminuéDétection de divergence data ↔ index
Ajouter une commande admin « Vérifier la cohérence des index » qui liste :
search_index.jsonsans dossier correspondantslug_index.jsonpointant vers des UUIDs absents