すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:pg_jieba

最終更新日:Mar 28, 2026

pg_jieba 拡張は、Jieba の中国語形態素解析機能を AnalyticDB for PostgreSQL に導入し、分散データに対する効率的な中国語の全文検索を可能にします。

前提条件

開始する前に、次のことを確認してください。

  • AnalyticDB for PostgreSQL インスタンスが弾性ストレージモードであること

  • マイナーバージョンが最小要件を満たしていること:

    • AnalyticDB for PostgreSQL V6.0:6.6.2.1 以降

    • AnalyticDB for PostgreSQL V7.0:7.0.5 以降

マイナーエンジンバージョンの確認方法については、「マイナーエンジンバージョンの表示」をご参照ください。

pg_jieba のインストール

  1. AnalyticDB for PostgreSQL コンソールの [拡張機能] ページで、pg_jieba 拡張をインストールします。詳細については、「拡張機能のインストール、更新、アンインストール」をご参照ください。

  2. 対象データベースの public スキーマに切り替え、次の文を実行してインストールを検証します。

    SELECT * FROM pg_extension WHERE extname = 'pg_jieba';

    拡張機能がインストールされている場合、出力は次のようになります。

    +--------+--------+--------+--------+
    |oid     |extname |extowner|...     |
    +--------+--------+--------+--------+
    |17194   |pg_jieba|10.     |...     |
    +--------+--------+--------+--------+

    行が返されない場合、拡張機能はそのデータベースの public スキーマにインストールされていません。

中国語の形態素解析の実行

pg_jieba は、テキスト検索構成 jiebacfg を登録します。中国語テキストを形態素解析するには、to_tsvector または to_tsquery の最初の引数として jiebacfg を渡します。

テキストを tsvector に分割します。

SELECT to_tsvector('jiebacfg', '有两种方法进行全文检索');

結果:

+---------------------------------------+
|               to_tsvector             |
+---------------------------------------+
|'两种':2 '全文检索':5 '方法':3 '进行':4   |
+---------------------------------------+
(1 row)

全文検索クエリを実行します。

SELECT to_tsvector('jiebacfg', '有两种方法进行全文检索') @@ to_tsquery('jiebacfg', '全文检索');

結果:

+----------+
| ?column? |
+----------+
| t        |
+----------+
(1 row)

カスタム辞書の利用

デフォルトでは、pg_jieba は組み込みの辞書を使用します。プロダクト名、専門用語、複合語などのドメイン固有の用語は、分割されずに単一のトークンとして扱われるように、カスタム辞書に追加してください。

pg_jieba をインストールすると、jieba.jieba_custom_word テーブルが次のスキーマで自動的に作成されます。

CREATE TABLE jieba.jieba_custom_word
(
    word    text primary key,     -- カスタム単語
    weight  float8 default '1.0', -- 重み
    type    text   default 'x'    -- 品詞
);

アクセス権限の申請

チケットを起票して、jieba.jieba_custom_word テーブルへの書き込み権限を申請してください。

カスタム単語の管理

単語を追加します。

INSERT INTO jieba.jieba_custom_word values('两种方法');

単語を削除します。

DELETE FROM jieba.jieba_custom_word WHERE word='两种方法';

テーブルをクエリします。

SELECT * FROM jieba.jieba_custom_word;

辞書の再読み込み

単語を追加または削除した後は、変更を有効にするために辞書を再読み込みしてください。このステップを実行しないと、形態素解析の結果は変更されません。

SELECT jieba.jieba_load_user_dict();

セグメンテーション結果の確認

再読み込みの前後で同じクエリを実行して、効果を確認します。

SELECT to_tsvector('jiebacfg', '有两种方法进行全文检索');
シナリオ結果
カスタム辞書適用前'两种':2 '全文检索':5 '方法':3 '进行':4
两种方法 を追加して再読み込みした後'两种方法':2 '全文检索':4 '进行':3

カスタム辞書がロードされると、两种方法两种方法 に分割されず、単一のトークンとして扱われます。

次のステップ