こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PostgreSQLでの日本語検索するには

PostgreSQLを使用しております。
バージョンは9.1です。

日本語の検索を行いたいので、create index ・・・を使用してインデックスを作成し
select * from hoge where item like '%ほげ%';

といった形で検索をかけてみました。
正常?に検索でき結果が出力されました。

いろいろネットを調べてみると、PostgreSQLで日本語の検索をやるにはpg_trgmやpg_bigmを
インストールしないとダメなようなことが書いてあるのですが、私がやったことは誤っているのでしょうか?

やはりpg_trgmなどをインストールしなければ日本語の検索はできないのでしょうか?
詳しい方教えてください。

投稿日時 - 2014-03-20 14:34:22

QNo.8521418

困ってます

質問者が選んだベストアンサー

> いろいろネットを調べてみると、PostgreSQLで日本語の検索をやるにはpg_trgmやpg_bigmを
> インストールしないとダメなようなことが書いてあるのですが、私がやったことは誤っているのでしょうか?

日本語の検索をするのにpg_trgmやpg_bigmのインストールが必須ということはありません。
これらは、PostgreSQL上で全文検索機能を提供するツールです。

これらを使うことで、spring3333さんが書いている中間一致検索のSQLに対しても、
インデックスを使って高速な検索が可能です。(これは、日本語、英語関係ありません。)

中間一致検索が多い場合は、こういったツールの導入も考えた方がいいかもしれませんね。

蛇足かもしれませんが、各検索方法にどういったインデックスが効くのかは以下のページを参考にされるとよいかと思います。

●Let's PostgreSQL ~テキスト検索の方法とインデックス
http://lets.postgresql.jp/documents/technical/text-processing/3/

投稿日時 - 2014-03-21 10:08:07

お礼

テストに使用したデータ件数が少なかったので速度はわからなかったのですが、件数が増えると検索速度にかなり影響が出るという事なんですね。

参考URLありがとうございます。
勉強になりました。

投稿日時 - 2014-03-22 13:10:38

ANo.2

このQ&Aは役に立ちましたか?

22人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

> PostgreSQLで日本語の検索をやるにはpg_trgmやpg_bigmをインストールしないとダメ

ダメということではなく、遅いか速いか ということでしょう。

投稿日時 - 2014-03-20 23:32:58