「オレオレReader(仮名)」にSolrベースの全文検索機能を追加しました

Rails 4でつくったRSSリーダー「オレオレReader(仮名)」を公開します - でぶぬる日記

タイトルの通りです。

先日公開したオレオレReader、最近はその名の通り「ほぼオレ専用RSSリーダー」となりつつあるのですが、引き続き細々と機能追加を進めております。

その中でも「エントリの全文検索機能」は「あったら便利だけど実装するのは面倒だなぁ」と思いつつ、楽に実現する方法が見つかった気がしたのでこっそりと導入してみました。



こんな感じのテキストボックスがあるので、適当にキーワードを入力してEnterキーを叩くと。



こんな感じで検索に引っ掛かったエントリの一覧が表示されます。
全フィード横断での検索/フィード単位での検索の2種類に対応しています。


この手の全文検索機能を実現するためのソリューションとしては、groongaであったりとか、目新しいところだと MySQL InnoDB FTSであったりとか色々あるのでしょうが、Railsとの親和性が高い点、MySQLとは完全に独立して導入出来るという点などなどを考慮して、今回は Solr を採用しました。

Rails環境からだとSunspot Gemを使うことが出来るので、Solrをほとんど意識することなく導入出来る上、検索処理が超高速で一瞬でレスポンスが返ってくる点がとても良いですね。

一方、productionでのSolr環境の構築が微妙に面倒だったりとか、Solrの最新版とSunspotの相性問題でハマったりとか、明示的にcommitを呼ばないとたまにインデックスの不整合が発生したりとか、さまざまな問題も発生していますが、おそらく私のSolrの知識が足りないせいなので精進します。

ともかく、現状は特に問題なく動いていると思うので、使ってみてください。

今後ともよろしくお願いいたします。