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

AnalyticDB:pg_jieba

最終更新日:Sep 27, 2024

AnalyticDB for PostgreSQLでは、pg_jieba拡張機能を使用して中国語の単語セグメンテーションを実行し、効率的な中国語の全文検索を実装できます。

概要

Jiebaは、中国語の単語セグメンテーションに一般的に使用されるツールです。 pg_jieba拡張機能は、Jiebaの中国語の単語セグメンテーション機能をPostgreSQLデータベースに導入し、効率的な中国語の全文検索の実装を支援します。 AnalyticDB for PostgreSQLでは、分散クエリにpg_jieba拡張機能を使用できます。

前提条件

pg_jieba拡張機能を使用する前に、次の要件が満たされていることを確認してください。

  • 管理するAnalyticDB for PostgreSQLインスタンスは、エラスティックストレージモードになっています。

  • AnalyticDB for PostgreSQL V6.0インスタンスのマイナーバージョンは6.6.2.1以降です。 AnalyticDB for PostgreSQL V7.0インスタンスのマイナーバージョンは7.0.5以降です。

    説明

    AnalyticDB For PostgreSQLインスタンスのマイナーバージョンを表示する方法については、「マイナーエンジンバージョンの表示」をご参照ください。

pg_jieba拡張機能のインストール

  1. Jiebaを使用する前に、AnalyticDB for PostgreSQLインスタンスのExtensionsページにpg_jieba拡張機能をインストールします。 詳細については、「拡張機能のインストール、更新、およびアンインストール」をご参照ください。

  2. 指定されたデータベースのパブリックスキーマに切り替え、次のステートメントを実行してpg_jieba拡張機能がインストールされているかどうかを確認します。

    SELECT * FROM pg_extension WHERE extname = 'pg_jieba';

    次の結果が返されると、pg_jieba拡張がインストールされます。 次の結果が返されない場合、指定されたデータベースのパブリックスキーマにpg_jieba拡張子はインストールされません。

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

中国語の単語分割

pg_jieba拡張子をインストールした後、拡張子を使用して中国語の単語セグメンテーションを実行できます。

例 1:

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

次の応答が返されます。

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

例 2:

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

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

カスタム辞書

pg_jieba拡張機能は、AnalyticDB for PostgreSQLのカスタム辞書をサポートします。 jieba.jieba_custom_wordという名前のカスタム辞書テーブルにデータを追加または削除して、カスタム単語を追加または削除できます。

説明
  • 辞書テーブルを手動で作成する必要はありません。 pg_jieba拡張子がインストールされると、jieba.jieba_custom_wordというカスタム辞書テーブルが自動的に作成されます。

  • jieba.jieba_custom_wordテーブルのデータ構造は次のとおりです。

    CREATE TABLE jieba.jieba_custom_word
    (
    	word    text primary key,     -- Custom word
    	weight  float8 default '1.0', -- Weight
    	type    text   default 'x'    -- Part of speech
    );

カスタム辞書テーブルを使用する権限を申請する

チケットを起票し、jieba.jieba_custom_wordテーブルの使用権限を申請します。 次に、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;

カスタム辞書テーブルの読み込み

jieba.jieba_custom_wordテーブルに単語を追加または削除した後、テーブルをリロードして変更を有効にする必要があります。 次のステートメントを実行して、jieba.jieba_custom_wordテーブルをリロードします。

SELECT jieba.jieba_load_user_dict();

中国語の単語セグメンテーション効果を確認する

中国語の単語セグメンテーション効果を確認するために、jieba.jieba_custom_wordテーブルを設定する前後に、次のサンプルステートメントを実行します。

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

次の応答が返されます。

シナリオ

jieba.jieba_custom_wordテーブルを設定する前

jieba.jieba_custom_wordテーブルの設定後

中国語の単語セグメンテーション効果

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

関連ドキュメント