Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Utiliser l'extension pg_jieba

Dernière mise à jour :Oct 10, 2026

Cette rubrique explique comment utiliser l'extension pg_jieba pour effectuer des recherches en texte intégral en chinois sur une instance ApsaraDB RDS for PostgreSQL.

Prérequis

  • Votre instance RDS exécute PostgreSQL 10.0 ou une version ultérieure.

  • Si la version majeure du moteur de votre instance RDS est conforme aux exigences mais que l'extension n'est toujours pas prise en charge, mettez à jour la version mineure du moteur. Par exemple, si votre instance RDS exécute PostgreSQL 17, la version mineure du moteur doit être 20241030 ou ultérieure. Pour plus d'informations, consultez Mettre à jour la version mineure du moteur.

  • pg_jieba a été ajouté à la valeur du paramètre shared_preload_libraries de votre instance RDS.

    Pour savoir comment ajouter pg_jieba à la valeur du paramètre shared_preload_libraries , consultez Définir les paramètres de l'instance.

Méthodes d'utilisation de l'extension pg_jieba

  • Créez l'extension pg_jieba.

    CREATE EXTENSION pg_jieba;
    Remarque

    Seuls les comptes privilégiés sont autorisés à exécuter la commande ci-dessus.

  • Supprimez l'extension pg_jieba.

    DROP EXTENSION pg_jieba;
    Remarque

    Seuls les comptes privilégiés sont autorisés à exécuter la commande ci-dessus.

  • Exemple 1 :

    SELECT * FROM to_tsvector('jiebacfg', '小明硕士毕业于中国科学院计算所,后在日本京都大学深造');
                                                     to_tsvector
    --------------------------------------------------------------------------------------------------------------
     '中国科学院':5 '于':4 '后':8 '在':9 '小明':1 '日本京都大学':10 '毕业':3 '深造':11 '硕士':2 '计算所':6 ',':7
    (1 row)
  • Exemple 2 :

    SELECT * FROM to_tsvector('jiebacfg', '李小福是创新办主任也是云计算方面的专家');
                                            to_tsvector
    -------------------------------------------------------------------------------------------
     '专家':11 '主任':5 '也':6 '云计算':8 '创新':3 '办':4 '方面':9 '是':2,7 '李小福':1 '的':10
    (1 row)

Fonctionnalités étendues

Consultez les fonctionnalités étendues de l'extension pg_jieba en fonction de la version installée.

Exécutez l'instruction SQL suivante pour interroger la version de l'extension pg_jieba :

SELECT * FROM pg_available_extensions WHERE name='pg_jieba';

Fonctionnalités étendues de la version 1.1.0

  • L'extension pg_jieba vous permet de configurer plusieurs dictionnaires personnalisés et de basculer entre eux.

    -- Insert data into the first custom dictionary. By default, data is inserted into the first custom dictionary. The first custom dictionary is represented by 0. The weight value of the first custom dictionary is 10.
    INSERT INTO jieba_user_dict VALUES ('阿里云');
    
    INSERT INTO jieba_user_dict VALUES ('研发工程师',0,10);
    
    -- Use the dictionary predefined in the pg_jieba extension to segment Chinese text.
    SELECT * FROM to_tsvector('jiebacfg', 'zth是阿里云的一个研发工程师');
    to_tsvector
    ------------------------------------------------------
    'zth':1 '一个':6 '云':4 '工程师':8 '研发':7 '阿里':3
    (1 row)
    
    -- Switch to the first custom dictionary. The jieba_load_user_dict() parameter specifies the sequence number of the custom dictionary.
    SELECT jieba_load_user_dict(0);
    jieba_load_user_dict
    ----------------------
    
    (1 row)
    
    SELECT * FROM to_tsvector('jiebacfg', 'zth是阿里云的一个研发工程师');
    to_tsvector
    --------------------------------------------
    'zth':1 '一个':5 '研发工程师':6 '阿里云':3
    (1 row)
  • L'extension pg_jieba permet d'afficher les résultats de segmentation du texte avec les décalages (offsets).

    SELECT * FROM to_tsvector('jiebacfg_pos', 'zth是阿里云的一个研发工程师');
                                         to_tsvector
    --------------------------------------------------------------------------------------
     'zth:0':1 '一个:8':6 '云:6':4 '工程师:12':8 '是:3':2 '的:7':5 '研发:10':7 '阿里:4':3'zth:0':1 ' One: 8':6 ' Cloud: 6':4 ' Engineer: 12':8 ' Yes: 3':2':7':5 ' R&D: 10':7 ' Ali: 4':3
    (1 row)

Fonctionnalités étendues de la version 1.2.0

  • La fonction jieba_load_user_dict() a été optimisée pour réduire son utilisation du CPU et sa consommation de mémoire.

  • Un nouveau paramètre a été ajouté à la fonction jieba_load_user_dict() pour spécifier s'il faut utiliser les dictionnaires personnalisés lors de la récupération des données.

    • Syntaxe

      jieba_load_user_dict(parameter1, parameter2)
    • Description des paramètres

      Paramètre

      Description

      parameter1

      Spécifie le numéro de séquence du dictionnaire personnalisé que vous souhaitez charger.

      parameter2

      Indique s'il faut charger le dictionnaire par défaut.

      • 0 : charge le dictionnaire par défaut.

      • 1 : ne charge pas le dictionnaire par défaut.

    • Exemples

      INSERT INTO jieba_user_dict VALUES ('阿里云');
      INSERT 0 1
      INSERT INTO jieba_user_dict VALUES ('研发工程师',0,10);
      INSERT 0 1
      
      -- The first 0 indicates the sequence number of the custom dictionary, and the second 0 indicates that the default dictionary is loaded.
      SELECT jieba_load_user_dict(0,0);
      jieba_load_user_dict
      ----------------------
      
      (1 row)
      SELECT * FROM to_tsvector('jiebacfg', 'zth是阿里云的一个研发工程师');
      to_tsvector
      --------------------------------------------
      'zth':1 '一个':5 '研发工程师':6 '阿里云':3
      (1 row)
      
      SELECT jieba_load_user_dict(0,1);
      jieba_load_user_dict
      ----------------------
      
      (1 row)
      
      SELECT * FROM to_tsvector('jiebacfg', 'zth是阿里云的一个研发工程师');
                           to_tsvector
      ------------------------------------------------------
      'zth':1 '一个':6 '云':4 '工程师':8 '研发':7 '阿里':3
      (1 row)
      Remarque

      Si la table jieba_user_dict ou la fonction jieba_load_user_dict() n'existe pas, vous devez mettre à jour la version mineure du moteur de votre instance RDS vers 20220730 et réinstaller l'extension.

      1. Pour plus d'informations sur la mise à jour de la version mineure du moteur, consultez Mettre à jour la version mineure du moteur d'une instance ApsaraDB RDS for PostgreSQL.

      2. Exécutez les instructions suivantes pour réinstaller l'extension :

        DROP EXTENSION pg_jieba;
        CREATE EXTENSION pg_jieba;

Références

Pour plus d'informations sur l'utilisation de l'extension pg_jieba, consultez la documentation officielle de pg_jieba.