分散SNS専用の検索エンジンとして開発したfediversesearchは、まずはリリースすることを優先して検索機能は簡単にILIKEで実現していました。
この方法だと、複数キーワードでの絞り込みなどができないので、調べたうえでPGroongaを採用しました。採用理由としては、「検索エンジンを別に立てる必要がない」「postgresqlに簡単に後付けできる」「Railsで使う方法がわかった」というのがあります。
まずは、参考にしたサイトを示します。
Ubuntuへのインストール方法は、公式にドキュメントがあったのでそちらを見ました。
Railsでの使い方に関してはこの記事を参考に。
なお、検索するときの演算子指定は公式ドキュメントを参考に試しています。
さて、変更後の動作がどうなるか、スクリーンショットとともに説明します。まずはキーワード1つの場合です。
「料理」で検索するとこんな感じになります。次はAND検索です。
「料理 小麦粉」みたいに半角で区切るとAND検索になります。あとはOR検索ですね。
「料理 OR バイク」でいけます。
なお、インデックスにshort_descriptionを追加するときエラーになったので、現時点ではshort_descriptionは検索対象外にしています。
少しは使いやすくなったと思っていますので試してみてください。