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

Tatsuo Ishii ishii @ sraoss.co.jp
2007年 2月 11日 (日) 17:03:17 JST


石井です.

> 佐藤です。
> 
> > --no-localeでも日本語のストップワードを使えるようにするパッチを作って
> > みました.8.2.3用です. share/contrib/english.stop に日本語のストップ
> > ワードを登録してみましたが,使えるようになったようです.
> 
> 石井さん、ありがとうございます。
> 
> 「EUC-JP」および「UTF-8」で期待通り動作することを確認しました。
> 
> ブログも拝見いたしました。解説ありがとうございます。
> 
> http://postgresql.at.webry.info/200702/article_3.html

どういたしまして.

> 追伸:
> 
> 辞書ファイルの文字セットは、データベースの文字セットと同一でなければな
> らないようです。例えば、「createdb -E EUC_JP」で作成したデータベースが
> UTF-8の辞書を参照するようになっていると、以下のエラーとなりました。
> 
> test.euc=# select to_tsvector('東京 の 天気 は 晴れ です');
> ERROR:  invalid byte sequence for encoding "EUC_JP": 0xe381
> HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
> 
> 異なる文字セットのデータベースを作成する必要がある場合、それぞれのデー
> タベースでその文字セットの辞書を参照するようにすればOKでした。
> 
> update pg_ts_dict set dict_initoption='contrib/japanese.stop.euc' where 'en_stem'=dict_name;

なるほど.

しかし,データベース毎に pg_ts_disct を別々にしなければならない,って
いうのも面倒ですね.できれば,

contrib/japanese.stop.エンコーディング

でファイルを作っておけば,それを見てくれる仕様だと嬉しいような気がする
のですが,いかがでしょう?
--
Tatsuo Ishii
SRA OSS, Inc. Japan



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