[pgsql-jp: 41104] Re: pg_trgmは正しく日本語を扱えるでしょうか?

松山大樹 t.matsuyama @ wowcom.co.jp
2012年 5月 11日 (金) 10:56:35 JST


松山と申します。

扱えないか、扱えるか、というなら、扱えています。
実際に業務で使用しています。


testdb=# explain analyze
testdb=# select count(*) from postCodeMaster
testdb=# where searchOnlyValue like '%スミダ%';
                                                            QUERY PLAN
-----------------------------------------------------------------
 Aggregate  (cost=74.31..74.32 rows=1 width=0) (actual time=0.332..0.333
rows=1 loops=1)
   ->  Bitmap Heap Scan on postcodemaster  (cost=28.10..74.28 rows=12
width=0) (actual time=0.202..0.319 rows=8 loops=1)
         Recheck Cond: (searchonlyvalue ~~ '%スミダ%'::text)
         ->  Bitmap Index Scan on postcodemasterix02  (cost=0.00..28.09
rows=12 width=0) (actual time=0.161..0.161 rows=8 loops=1)
               Index Cond: (searchonlyvalue ~~ '%スミダ%'::text)
 Total runtime: 0.459 ms
(6 rows)

2文字以下だと、Seq Scan になるのは、既出の通りなので、
アプリケーション側で、文字数をチェックして弾いています。

testdb=# explain analyze
testdb=# select count(*) from postCodeMaster
testdb=# where searchOnlyValue like '%スミ%';
                                                            QUERY PLAN
-----------------------------------------------------------------
 Aggregate  (cost=5638.41..5638.42 rows=1 width=0) (actual
time=131.806..131.807 rows=1 loops=1)
   ->  Seq Scan on postcodemaster  (cost=0.00..5628.96 rows=3779
width=0) (actual time=0.033..127.062 rows=6971 loops=1)
         Filter: (searchonlyvalue ~~ '%スミ%'::text)
 Total runtime: 131.861 ms
(4 rows)



> MauMauといいます。お世話になります。
> 
> 
> contrib/pg_trgmが日本語を正しく扱えるか、どなたかご存知でしたら教えてい
> ただけますか?
> 次のページを見ると、trgm.hのKEEPONLYALNUMの定義を削除すれば、
> 日本語の中間一致検索ができるとされています。
> 
> http://lets.postgresql.jp/documents/technical/text-processing/3#contains
> 
> しかし、次のページによると、9.1のリリース直前に、
> 「pg_trgmはASCII英数字を扱える」とマニュアルが変更されました。
> 
> http://archives.postgresql.org/pgsql-hackers/2011-09/msg00169.php
> 
> 前者の記事のようにして日本語を扱えるようにした場合、何か問題が発生しうる
> から
> 正式マニュアルでは「ASCII英数字のみ」とされているのでしょうか?
> 
> よろしくお願いします。
> 以上です。
> 
> 
> 
> 



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