[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 メーリングリストの案内