[Laravel] FULLTEXTインデックスを使った全文検索

LaravelでFULLTEXTインデックスを使った検索を行うためのメモ。ざっくり。

マイグレーション

テーブルに検索対象ワードを格納するフィールド(keywords)を定義して、FULLTEXTインデックスを振る。

検索対象ワードのセット

記事登録時にタイトルや本文をNgram/形態素解析するなどして、keywordsフィールドに検索対象となるワードを格納する。何をセットするかで検索の精度が変わってくるだろうから工夫する。

全文検索

whereRawで全文検索のためのクエリーを記述する。

参考サイト

FULLTEXT Indexes at migrations
https://laracasts.com/discuss/channels/general-discussion/fulltext-indexes-at-migrations

How to do a full text search in laravel 5
https://laracasts.com/discuss/channels/laravel/how-to-do-a-full-text-search-in-laravel-5?page=1