HerokuでPostgresqlのみで全文検索はできない?

Herokuで運営しているサービスの高速化のために全文検索について調査していましたが、どうもHerokuのPostgresqlだけでは完結できそうもない、というところまでわかったので、どんなことを調べたのかメモしときます。

まず、Postgresqlでの日本語の全文検索はできますが、pg_bigm拡張、もしくはpg_trgm拡張が必要のようです。
個別のサーバ環境であれば、それを入れることができますが、Herokuの場合は難しそうです。pg_bigmは入れられません。そして、pg_trgmは有効にできますが、HerokuのPostgresqlの場合だと、検索対象になるデータがアルファベットと数字のみのようで、日本語はダメっぽいです。

参考リンク:
heroku dev center: Extensions, PostGIS, and Full Text Search Dictionaries on Heroku Postgres

Groongaという全文検索エンジンを使う方法もあるようでした。Rubyで扱えるRroongaを使うと簡単でHerokuでも動くし、Addonを必要としないのが利点のようです。buildpackを使ってGroongaがインストールされたDynoを作り、そこにGroongaのデータも持たせるということのようです。
しかし、Dynoは容量制限があるので、Groongaのデータがおそらく多く持てないということで、万が一不具合が起きても困るので(Dynoが持てる容量を増やすとかできないし)、ちょっと今回はパスしたいです。

参考リンク:
株式会社クリアコード: Heroku用Groongaのビルド方法
SlideShare: HerokuでGroonga

となると、残るはElasticsearchを使う方法になりそう。

誰かこうやったらHerokuのPostgresqlだけでいけるよとか、いい方法をご存知でしたら教えてください…。


カテゴリー 日記 | タグ    | パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です