Certain termes spécifiques sont-ils ignorés lors des recherches ?

I’m having a few difficulties with the search functionality today.

We have an automated process we creates topics based on a lecture from a course, an example may be;

About ‘Implementing Health & Damage’

I found myself wanting to reduces the maximum number of characters for a topic length and decide I’d do a quick search to see how many of our automated topics are quite long, to get a feel for the suitable max length.

If I search using the above, I’ll get result, but I need the search to be a little more general than that, so I’ve tried searching for;

About ’

…knowing that is the start of the format we always use. When I do, I don’t get any results, if I add another word after the apostrophe I do get results. I assumed at that point it was related to the apostrophe, but nope, if I search for just;

About

I get no results, yet if I search for;

Test

I do get results! This indicates there isn’t a limitation on the number of words as a minimum for a search, and we have a 3 character limit set for the term, so it isn’t that. The only thing I can think of is that there is a list of “words” that are being ignored from a search, yet I don’t think we’ve set these up.

Any information would be appreciated. :slight_smile:


Update

I have also tested this with “because”, “and”, “the” and these all produce no results, so I’m feeling that there is a list of “common words” which are being ignored, but because I don’t have access to these via the settings I cannot alter them, and, cannot perform the search I want to perform.

Yes, I believe these are “stop” words — see:

I’m not sure if things have changed much since two years ago, but there doesn’t seem to be an easy way to change those.

Hi Kris,

Thanks for the reply.

Yeah, I thought as much. It’s a pain on this occasion as in this specific case the word does have value.

I guess using DataExplorer wouldn’t get around this either?


Update

Actually, via DataExplorer it works. I guess a full text search isn’t carried out when querying the topic title field.

Looks like a work-around :slight_smile:

Je viens de rencontrer ce problème moi-même. C’est… extrêmement agaçant. Y a-t-il une mise à jour ou un moyen de modifier cela maintenant ? « À propos » ne devrait vraiment pas être un mot filtré pour la recherche ! Voici comment je suis tombé dessus ici sur Meta :

J’étais dans la catégorie Plugins et j’ai remarqué que certains sujets de plugins suppriment automatiquement les réponses, tandis que d’autres ne le font pas. Alors je suis allé voir s’il y avait une explication à cela dans le sujet « À propos » de cette catégorie. Il n’y en avait pas, alors j’allais poser la question, mais je voulais d’abord faire une demande de fonctionnalité pour un plugin (dans un sujet supprimant automatiquement les réponses :grinning_face_with_smiling_eyes:). Je suis donc retourné à la liste principale des catégories et j’ai fait ma réponse. Ensuite, je suis retourné à nouveau à la liste des catégories et j’ai essayé de trouver le sujet About the Plugin category. Comme c’était un sujet épinglé mais plus ancien, et que je l’avais déjà lu… il n’était plus visible dans la liste (il avait été déplacé à sa position correspondant à sa date). :roll_eyes: Bon, pas de problème, je vais simplement le rechercher… Mais bien sûr, aucun résultat.

Le problème plus important est qu’il n’y a absolument aucun avertissement ou message dans l’interface utilisateur à ce sujet. La recherche échoue simplement silencieusement. Donc, si cela est impossible à corriger en raison des limitations de Postgres, je suggère vivement d’ajouter une fonctionnalité dans Discourse qui notifie aux utilisateurs que ces mots sont filtrés de la recherche ! Sinon, c’est assez déroutant.

Je suis aussi surpris que « about » figure dans la liste actuelle des mots vides de Postgres, mais la voici :

Une solution de contournement consiste à rechercher des sujets épinglés dans une catégorie :

in:pinned #support

Merci Jeff, je ne savais pas qu’on pouvait rechercher dans les sujets épinglés. Il y a toujours quelque chose de cool et de nouveau à découvrir parmi les fonctionnalités de Discourse. :smiley:

Mais… as-tu une idée pour avertir le pauvre utilisateur qui cherche et ne trouve rien, alors qu’il sait qu’il devrait y avoir des résultats ? Maintenant que je vois la liste complète, elle est vraiment assez longue…

C’est une bonne idée d’émettre un avertissement si votre recherche ne contient que des mots vides. À quel point cela serait-il difficile à mettre en œuvre @tgxworld ?

Nous ne voulons pas coder la liste en dur, nous avons donc besoin d’un moyen d’interroger PostgreSQL pour nous dire : « Tous ces mots sont-ils des mots vides ? »

Nous pouvons retourner une colonne supplémentaire dans notre requête de recherche, ce qui nous permettra de déterminer si le terme ne contient que des mots vides, ce qui n’est pas très difficile à réaliser. Je devrai cependant creuser davantage pour trouver où injecter cette colonne supplémentaire, mais notre objectif final devrait être d’éviter une requête de base de données supplémentaire simplement pour déterminer si un terme est composé uniquement de mots vides.

Peut-être que s’il n’y a pas de résultats de recherche, nous exécutons cette vérification pour voir si la requête ne contient que des mots vides ? Ainsi, nous ne faisons une vérification supplémentaire que lorsque les résultats sont de toute façon médiocres. Selon la liste des mots vides, par exemple si vous recherchez « doing should now ».

Dans le pire des cas, nous pourrions dupliquer la liste et effectuer la vérification côté serveur ; ce n’est que 127 chaînes, mais ce serait une solution peu élégante. Peut-être qu’au démarrage, nous pourrions interroger la liste des mots vides et la mettre en cache ?

Oui, c’est un peu similaire à ce que j’entendais avec la colonne supplémentaire dans les résultats de recherche. Si la recherche est vide, nous consultons cette colonne pour déterminer si c’est parce que tous les termes sont des mots vides ou parce que nous avons obtenu 0 correspondance.

Comment ces mots vides fonctionnent-ils dans d’autres langues ? Les mots traduits sont-ils également arrêtés ? Ou seulement les mots anglais lorsqu’ils sont connectés à des besoins techniques ?

Il existe des fichiers pour différentes langues

Je vois. Presque tous les pronoms personnels sous presque toutes leurs formes, et avec le verbe être, plus quelques mots de remplissage comme or, only, when, etc. Presque tout peut être contourné dans les recherches, par exemple, nous n’avons pas vraiment besoin de personnes dans une phrase. Mais c’est sûr, cela rend la base de données plus contrôlable.

Mais c’est bien de savoir qu’elle est construite par langue également. Merci.