Bonjour,
Je rencontre un problème avec la modale « Déplacer vers un sujet existant » (cela fonctionnait auparavant sur mon site, il semble donc s’agir d’une régression) :
- La saisie dans Rechercher un sujet n’affine pas les résultats
- Les requêtes réseau retournent 200 avec les paramètres corrects
- Aucune erreur JS dans la console du navigateur
- La recherche
/searchsur l’ensemble du site fonctionne comme prévu - Le problème persiste après des reconstructions
Exemple de requête effectuée :
/search/query?term=Eve Park&type_filter=topic&search_for_id=true&restrict_to_archetype=regular
La liste de sélection semble rester un ensemble statique de sujets et ne change pas lorsque le
term(terme) est modifié.
Après un débogage côté client, j’ai d’abord soupçonné que cela pourrait être causé par le fait que pg_trgm n’était pas activé dans Postgres, mais je voulais le confirmer avant de continuer.
J’ai exécuté les commandes suivantes :
./launcher enter app
rails c
ActiveRecord::Base.connection.execute(
"SELECT extname FROM pg_extension WHERE extname = 'pg_trgm';"
).to_a
Ce diagnostic serait valable si la commande retournait :
[]
Cependant, elle a retourné à la place :
[{"extname"=>"pg_trgm"}]
Donc pg_trgm est activé, et cela ne semble pas être la cause première.
J’ai donc l’intention d’exécuter la commande suivante :
./launcher enter app
rake search:reindex
Ceci pourrait être pertinent car une catégorie particulière de mon forum contient un très grand nombre de sujets.
Ce qui est déroutant, c’est que :
- Discourse continue de fonctionner normalement par ailleurs
- La recherche complète
/searchfonctionne comme prévu - L’autocomplétion du déplacement de sujet se dégrade silencieusement au lieu d’afficher un avertissement
Dans le cadre du débogage, j’ai également activé le paramètre search prefer recent posts et rechargé le navigateur. Cela n’a eu aucun effet sur le comportement - la recherche « Déplacer vers un sujet existant » n’affine toujours pas les résultats lorsque je tape.
Étant donné que ce paramètre n’affecte que la recherche complète /search et non le point de terminaison du sélecteur de sujet, cela semble cohérent avec le fait que le problème est spécifique à /search/query plutôt qu’à la performance générale de la recherche.
Avant d’exécuter rake search:reindex, je voulais vérifier la logique :
Le sélecteur de déplacement de sujet utilise /search/query avec search_for_id=true, qui s’appuie plus directement sur les recherches indexées que le point de terminaison /search complet. Un index de recherche partiellement obsolète ou incohérent pourrait donc affecter le sélecteur tandis que la recherche complète semble toujours fonctionner.
Étant donné que :
- le point de terminaison est appelé,
- les réponses retournent 200,
pg_trgmest activé,- et la bascule de
search prefer recent postsn’a aucun effet,
Un rake search:reindex complet semble être la prochaine étape logique pour écarter une incohérence de l’index. Par ailleurs, l’absence de tout avertissement ou retour d’information rend cela particulièrement déroutant du point de vue de l’expérience utilisateur administrateur.