ActiveRecordのモデルに全文検索機能をつけちゃうGem「AttrSearchable」

Pocket

全文検索エンジンを使わずともActiveRecordに手軽に全文検索機能をつけるGemがありました。AttrSearchableというGemです。

さすがに一般的な全文検索エンジンと同じようにPDFやExcelファイルの中身まで検索することはできませんが、RDBに保存してあるテキストを検索するぐらいの用途には良いかもしれません。MySQLやPostgreSQLで対応している、全文検索用のインデックスにも対応しているので、通常のLIKE検索よりは良さそうです。

使い方

gem 'attr_searchable'をGemfileに追加してbundle install`したあと、下のコードのように、ActiveRecordのモデルにattr_seachableというクラスマクロを追加します。

すると、こんな風に検索することができるようになります。

文字列検索の場合は自動的にカラムをまたいでLIKE検索してくれるようになるのが便利ですね。

RDBの全文検索機能を利用する場合

RDBの全文検索機能を利用する場合は、以下のコードのように、対象のカラムにtype: :fulltextというオプションをつけます。

すると、クエリが以下のように変わります。

2014/6/29現在でバージョンが0.0.3とかなり若いGemではありますが、かなり便利そうなので、ぜひ育っていって欲しいGemです。

mrkamel / attr_searchable