5.7から標準機能で日本語のテキストを全文検索できるようになりました。5.6以前では日本語のテキストを全文検索できません。MySQLにMroonga(むるんが)というストレージエンジンを導入することで日本語のテキストを全文検索できるようになります。Mroongaは高速です。MySQLと全文検索エンジンサーバーを組み合わせて日本語全文検索を実現することもできますが、管理するサーバーが増える・SQL以外に全文検索エンジンサーバーのことを覚える必要があるなど開発・運用時のコストが高くなります。MySQLだけで完結できた方が開発時も運用時も楽になります。実現する方法を説明します。実際にドキュメント検索システムを開発する手順を示すことで説明します。7を用いますが、他の環境でも同様の手順で実現できます。MySQLとMroongaのインストールまずMySQLとMroongaをインストールします。7以外の場合にどうすればよいかはMroongaのインストールドキュメントを参照してください。2.2をインストールします。Railsをインストールします。持ったドキュメント検索システムを開発します。newで雛形を作ります。gemは0.3系でなければいけないのでGemfileでバージョンを指定します。assetsバージョンを更新します。gemを有効にします。Gemfileから次の行のコメントを外します。gemをインストールします。installデータベースを作成します。db:createここまでは(ほぼ)Mroongaと関係ない手順です。アプリケーションがMySQLを使う場合にはよくある手順です。ここからはMroongaを使う場合に特有の手順になります。検索対象のドキュメントを格納するテーブルを作成します。db:migrationする前にマイグレーションファイルを編集してストレージエンジンをMroongaに変更します。:contentこのマイグレーションファイルを反映します。db:migrate全文検索用のインデックスを作成します。マイグレーションファイルを作成します。db/migrate/20151109143515_add_full_text_search_index_to_documents.rbdb/migrate/20151109143515_add_full_text_search_index_to_documents.rbは次のような内容にします。:fulltextを指定してインデックスを追加することがポイントです。endendこのマイグレーションファイルを反映します。db:migrateMySQL側の準備はできたのでアプリケーション側に全文検索機能を実装します。モデルに全文検索用のスコープを定義します。AGAINST('...')を使います。MODE')がオススメです。}endビューにヒット件数表示機能と検索フォームをつけます。検索フォームではqueryというパラメーターに検索クエリーを指定することにします。<tr>最後に、コントローラーで全文検索を使うようにします。