Lorsque j’essaie de rechercher du chinois dans mon forum, je constate que les résultats de recherche affichent des phrases incomplètes : la ponctuation manque, il y a des espaces inattendus entre les mots, et certains mots sont absents.
Par exemple, j’ai essayé de rechercher 管理员. La phrase originale est :
管理人员可见的分类。只有管理员和版主才能阅览主题
Mais ce que j’ai vu dans les résultats de recherche ressemble à ceci :
Comme vous pouvez le constater, 可见的 manque, le point final 。 est également absent, ce qui rompt la phrase. Ensuite, 只有, 和 et 才能 sont aussi manquants. De plus, il y a des espaces inattendus entre les mots.
Quelqu’un peut-il m’aider à résoudre ce problème ? Merci
Oui, la recherche fonctionne toujours, mais l’extrait affiché n’est pas idéal. Pour la langue chinoise, la recherche est gérée différemment. Au lieu d’ignorer les mots vides lors de la requête de recherche elle-même, nous les excluons complètement des données de recherche.
Les mots vides désignent des termes très courants qui nuisent aux performances de la recherche.
« Et », par exemple, est un mot vide en anglais.
Il est possible de corriger ce problème, mais cela prendra quelques mois. En attendant, si vous avez besoin d’une solution rapide, consultez Marketplace.
Les mots vides sont déterminés à l’aide de GitHub - yanyiwu/cppjieba: "结巴"中文分词的C++版本 · GitHub. Avec les récentes modifications concernant l’affichage des extraits de recherche, nous devrions simplement supprimer la ligne suivante, car elle perturbe les données de recherche réelles.
De toute façon, notre prise en charge de la recherche en chinois n’est pas excellente, mais il existe des extensions PG que nous pourrions envisager afin de prendre correctement en charge les langues qui ne bénéficient pas d’une prise en charge native. Peut-être https://pgroonga.github.io/ ?
@tgxworld Je ne suis pas sûr de bien comprendre : PGroonga ne prend pas en charge le chinois et le japonais. Sur https://pgroonga.github.io/, il est indiqué :
PostgreSQL prend en charge la recherche plein texte uniquement pour les langues utilisant l’alphabet et les chiffres. Cela signifie que PostgreSQL ne prend pas en charge la recherche plein texte pour le japonais, le chinois, etc. Vous pouvez utiliser la fonctionnalité de recherche plein texte ultra-rapide pour toutes les langues en installant PGroonga dans votre PostgreSQL !
Le sens est exactement le contraire. PostgreSQL normal ne prend pas en charge le chinois et le japonais. PGroonga ajoute la prise en charge de ces langues.
Désolé de ne pas avoir été plus précis plus tôt. Si nous voulons vraiment corriger cela pour le moment, nous devons nous assurer de ne pas supprimer les mots vides chinois dans les données de recherche, tout en veillant à ce que les mots vides soient toujours supprimés lorsqu’ils sont utilisés comme requête de recherche.
Nous stockons deux colonnes dans la table PostSearchData : #search_data est utilisé lors des requêtes sur les termes de recherche, tandis que #raw_data est utilisé pour afficher l’extrait de recherche. La correction consiste à ce que les mots vides chinois ne soient pas supprimés de #raw_data, tout en continuant à l’être de #search_data.