[pgsql-jp: 37999] [tsearch2]日本語のストップワード

SATO Hiroyuki hiroyuki @ navitime.co.jp
2007年 2月 9日 (金) 23:33:25 JST


佐藤と申します。

tsearch2で日本語のストップワードを登録したく、調査している者です。

現在、強引ですが以下の手順で日本語のストップワードを登録できました。
PostgreSQL 8.2.3を使用しました。

(1) ロケール「ja_JP.UTF8」でinitdb

initdb --encoding=UTF-8 --locale=ja_JP.UTF8

(2) 'utf8_russian'のロケールを「ja_JP.UTF8」に変更

update pg_ts_cfg set locale='ja_JP.UTF8' where ts_name='utf8_russian';

(3) russian.stop.utf8に日本語のストップワードを登録

---- [start] log ----
# diff share/contrib/russian.stop.utf8{.orig,}
151a152,154
>>> です
---- [ end ] log ----

以下のようにストップワードが削除されました。

---- [start] log ----
test=# select to_tsvector('東京 の 天気 は 晴れ です');
        to_tsvector
----------------------------
 '天気':3 '晴れ':5 '東京':1
(1 row)

---- [ end ] log ----


日本語のストップワードを有効にするには「--locale=ja_JP.UTF8」でデータ
ベースクラスタの作成するしかないのでしょうか?(「--no-locale」で作成
した場合は日本語のストップワードは使用できないのでしょうか?)


また、上記のような強引な方法ではなく、もっとスマートな方法をご教授いた
だけましたら幸いです。

# 以下のドキュメントを読んでいる最中ですが、まだ十分理解できておりません。
http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/

よろしくお願い致します。
--------
SATO Hiroyuki <hiroyuki @ navitime.co.jp>




pgsql-jp メーリングリストの案内