Récemment, suite à des retours internes, nous avons décidé de prioriser une série d’améliorations de notre algorithme de recherche.
Ces changements ont maintenant été déployés sur tous les sites dans le cadre de Discourse 3.1.0.beta3. Après la mise à jour, votre site commencera automatiquement à réindexer tout votre contenu pour la recherche.
Deux nouveaux paramètres de site font partie de ces changements, mais ils ont été configurés avec des valeurs que nous avons trouvées efficaces lors de nos tests ici sur meta, nous ne nous attendons donc pas à ce que la plupart des sites aient une raison de les modifier.
Prioriser la correspondance exacte du terme dans le titre par rapport à la correspondance partielle
Discourse effectue une recherche par racine + correspondance de préfixe. Cela peut parfois conduire à des résultats très surprenants.
Par exemple : redis devient redi, donc une recherche pour redis peut trouver tous les mots qui commencent par redi, tels que redirect et plus encore.
Un nouveau paramètre de site caché a été ajouté : prioritize_exact_search_title_match, qui est maintenant activé par défaut.
Avant :
Après :
Cela signifie que si vous vous souvenez du titre et que vous le tapez, vous avez beaucoup plus de chances de trouver le titre.
Réduction de la duplication maximale d’index
Notre algorithme de classement classe les publications qui ont plusieurs correspondances pour un terme plus haut que les publications qui ne contiennent le terme qu’une seule fois. Cela signifie que vous pouvez “tricher” dans la recherche en répétant simplement un mot un grand nombre de fois. Plus vous tapez le mot, plus il remonte en haut des résultats de recherche.
Un nouveau paramètre de site caché SiteSetting.max_duplicate_search_index_terms a été ajouté, qui est par défaut à 6.
Une fois appliqué, cela signifie que si vous tapez “sam” 6 fois ou 60 fois dans une publication, elle sera toujours classée de la même manière. Cela met un plafond au bonus que vous pouvez accorder aux résultats.
Ce changement a également un impact positif sur les performances, étant donné que l’index de recherche devient un peu plus petit.
Corrections de bugs divers
Une partie du travail a consisté à examiner des cas de recherche pathologiques.
-
Auparavant, nous réduisions la priorité des sujets fermés, mais nous avions oublié les sujets archivés. Ceci est maintenant corrigé.
-
Auparavant, nous nous appuyions trop sur les correspondances de préfixes pour les recherches de “domaines”. Cela signifie que le mot
happyne trouvait pashttps://happy.comcarhappydevienthappiet la correspondance de préfixe échoue. Ceci a été corrigé.
Travaux futurs
-
Nous prévoyons d’expérimenter la recherche “floue” pour la complétion automatique des mentions. (permettre de sauter une lettre par exemple)
-
Nous prévoyons d’étudier la dé-priorisation des termes dupliqués dans les titres. Actuellement, le sujet fermé
hello goodbye helloest classé plus haut que le sujet ouverthello world. -
PageRank… nous ne prenons actuellement pas en compte le nombre de liens internes entrants lors du classement des résultats. Cela signifie que parfois des sujets incroyablement bien liés peuvent être classés plus bas qu’un sujet rare qui n’est lié nulle part. Il serait souhaitable de prendre cela en compte dans notre algorithme de classement.
-
Nous avons une initiative ouverte examinant les intégrations d’IA, nous pourrions tirer une certaine inspiration d’outils similaires à GPT.
Que pouvez-vous faire pour aider ?
Remarquez-vous des résultats médiocres sur meta ? Si oui, veuillez inclure le terme que vous avez recherché en expliquant pourquoi les résultats sont médiocres.
Comment trouvez-vous les changements (neutres/meilleurs/pires ?)


