Guide d'utilisation de pg_jieba
pg_jieba
est un module d'extension tiers pour PostgreSQL basé sur la bibliothèque de segmentation Jieba, spécialement conçu pour la recherche en texte intégral en chinois. Il permet de segmenter efficacement le texte chinois afin de prendre en charge la recherche en texte intégral. Cet article présente en détail comment installer et utiliser pg_jieba
dans ServBay.
Installation de pg_jieba
ServBay est déjà équipé du module d'extension pg_jieba
, vous n'avez qu'à l'activer dans la base de données. Voici les étapes pour activer pg_jieba
:
Connectez-vous à la base de données PostgreSQL :
bashpsql -U votre_nom_utilisateur -d votre_base_de_données
1Créez l'extension :
sqlCREATE EXTENSION pg_jieba;
1Vérifiez l'installation :
sql\dx
1
Configuration de pg_jieba
Après avoir activé pg_jieba
, vous devez effectuer quelques configurations pour qu'il puisse correctement segmenter le texte chinois et prendre en charge la recherche en texte intégral.
Configurer la configuration de recherche en texte (Text Search Configuration)
Créer la configuration de recherche en texte :
sqlCREATE TEXT SEARCH CONFIGURATION chinese (PARSER = pg_jieba);
1Ajouter des dictionnaires :
sqlALTER TEXT SEARCH CONFIGURATION chinese ADD MAPPING FOR n,v,a,i,e,l WITH simple;
1
Utilisation de pg_jieba pour la recherche en texte intégral
Voici un exemple montrant comment utiliser pg_jieba
pour effectuer une recherche en texte intégral.
Créer une table et des données d'exemple
Créer une table :
sqlCREATE TABLE documents ( id SERIAL PRIMARY KEY, content TEXT );
1
2
3
4Insérer des données d'exemple :
sqlINSERT INTO documents (content) VALUES ('我爱自然语言处理'), ('中文分词是文本处理的重要步骤'), ('pg_jieba是一个很好的中文分词工具');
1
2
3
4
Créer un index de recherche en texte intégral
- Créer un index GIN :sql
CREATE INDEX idx_gin_content ON documents USING gin (to_tsvector('chinese', content));
1
Effectuer une recherche en texte intégral
Exécuter une requête de recherche :
sqlSELECT * FROM documents WHERE to_tsvector('chinese', content) @@ to_tsquery('chinese', '中文 & 分词');
1
2Cette requête retournera les documents contenant les mots « 中文 » et « 分词 ».
Personnaliser le dictionnaire
Vous pouvez personnaliser le dictionnaire de pg_jieba
pour mieux répondre aux besoins spécifiques de votre application.
Ajouter des termes personnalisés
Créer un fichier de dictionnaire personnalisé :
plaintext/Applications/ServBay/etc/scws/custom_dict.txt
1Ajouter des termes dans le fichier, un terme par ligne :
plaintext自然语言处理 中文分词
1
2Configurer
pg_jieba
pour utiliser le dictionnaire personnalisé :sqlSET pg_jieba.dict_path = '/Applications/ServBay/etc/scws/custom_dict.txt';
1
Recharger le dictionnaire
- Recharger le dictionnaire :sql
SELECT jieba_reload_dict();
1
Conclusion
pg_jieba
est un outil puissant de segmentation en chinois qui, grâce à une configuration et une utilisation simples, vous permet de réaliser une recherche en texte intégral efficace dans PostgreSQL. ServBay est déjà équipé du module d'extension pg_jieba
, vous n'avez qu'à suivre les étapes de cet article pour l'installer et le configurer. Grâce à un dictionnaire personnalisé, vous pouvez également optimiser encore plus la segmentation pour répondre aux besoins spécifiques de votre application.