pg_jieba使用ガイド
pg_jieba
は、PostgreSQL用のサードパーティ拡張モジュールであり、Jieba分かち書きライブラリに基づいており、中国語の全文検索のために特化しています。pg_jieba
を使うことで、中国語のテキストを効率的に分かち書きし、全文検索機能をサポートすることができます。この記事では、ServBayでpg_jieba
をインストールし使用する方法を詳細に説明します。
pg_jiebaのインストール
ServBayには既にpg_jieba
拡張モジュールが付属しているため、データベースで有効にするだけで良いです。以下はpg_jieba
を有効にする手順です:
PostgreSQLデータベースに接続:
bashpsql -U your_username -d your_database
1拡張を作成:
sqlCREATE EXTENSION pg_jieba;
1インストールの確認:
sql\dx
1
pg_jiebaの設定
pg_jieba
を有効にした後、正しく分かち書きと全文検索を行うために設定を行う必要があります。
テキスト検索設定の構成
テキスト検索設定の作成:
sqlCREATE TEXT SEARCH CONFIGURATION chinese (PARSER = pg_jieba);
1辞書の追加:
sqlALTER TEXT SEARCH CONFIGURATION chinese ADD MAPPING FOR n,v,a,i,e,l WITH simple;
1
pg_jiebaを使った全文検索
以下は、pg_jieba
を使用して全文検索を行う例です。
サンプルテーブルとデータの作成
テーブルを作成:
sqlCREATE TABLE documents ( id SERIAL PRIMARY KEY, content TEXT );
1
2
3
4サンプルデータを挿入:
sqlINSERT INTO documents (content) VALUES ('我爱自然语言处理'), ('中文分词是文本处理的重要步骤'), ('pg_jieba是一个很好的中文分词工具');
1
2
3
4
全文検索インデックスの作成
- GINインデックスを作成:sql
CREATE INDEX idx_gin_content ON documents USING gin (to_tsvector('chinese', content));
1
全文検索の実行
検索クエリの実行:
sqlSELECT * FROM documents WHERE to_tsvector('chinese', content) @@ to_tsquery('chinese', '中文 & 分词');
1
2このクエリは「中文」と「分词」の両方の単語を含むドキュメントを返します。
カスタム辞書の作成
pg_jieba
の辞書をカスタマイズして、特定のアプリケーションニーズにより適合させることができます。
カスタム用語の追加
カスタム辞書ファイルの作成:
plaintext/Applications/ServBay/etc/scws/custom_dict.txt
1ファイルに用語を追加。1行につき1つの用語:
plaintext自然语言处理 中文分词
1
2pg_jieba
がカスタム辞書を使用するように設定:sqlSET pg_jieba.dict_path = '/Applications/ServBay/etc/scws/custom_dict.txt';
1
辞書の再読み込み
- 辞書の再読み込み:sql
SELECT jieba_reload_dict();
1
まとめ
pg_jieba
は強力な中国語分かち書きツールで、簡単な設定と使用を通じて、PostgreSQLで効率的な中国語全文検索を実現できます。ServBayには既にpg_jieba
拡張モジュールが付属しているため、この記事の手順に従ってインストールと設定を行うだけで簡単に利用を始めることができます。カスタム辞書を利用することで、特定のアプリケーションニーズに適した分かち書き結果を得ることも可能です。