全文検索システム「Solr」の紹介

みなさん、こんにちは。lunettesチームの的場です。

肩書きはTechnical Promoterを名乗っています。 役割としては、新しい技術の利用を推進したり、技術レベルの底上げなどになります。

今回はチーム内のプロジェクトでよく使われているオープンソースの検索エンジン「Solr」を紹介します。

Solrとは

Apache Software Foundationで提供されているオープンソースの全文検索システムです。 全文検索自体はApache Luceneという同じくApache Software Foundationで提供されている全文検索エンジンを使用しています。

全文検索とは

全文検索とは、大量の文書から特定の文字や文章が含まれている文書を検索する仕組みです。

みなさんもよく使われているGoogleも全文検索の仕組みを使って世界中のWebサイトを検索しています。 また各Webサイトごとに全文検索を持っているものを多く、それらは各Webサイト内に限った検索が出来るようになっています。

全文検索を利用することによって、大量にある情報から必要な情報を得ることが出来るのです。

なぜSolrを選んだか

通常のWebシステムではデータの保存や検索にはMySQLやPostgreSQLなどのリレーショナルデータベースシステムを利用することが多いです。それらの中にも全文検索に対応しているものはありますが、標準機能ではなくてインストールが面倒だったり、成熟されていないため安定性に不安があったり、性能や機能面における拡張性に不安があったりします。

SolrはJavaのみで動作するためインストールは簡単で、利用者も多いため比較的安定しており、性能や機能面における拡張性も十分考慮されています。 また、日本人も開発に参加しているため、日本語の検索も考慮されています。

ただし、Solrを使えば全てのデータに対応出来るわけではなく、リレーショナルデータベースシステムで良く扱う関係性を持ったデータなどは不得意な場合もありますので適材適所という形になります。 チーム内のプロジェクトでもSolrと別のデータストア(PostgreSQLやCouchbaseなど)を併用しています。

次回はSolrの検索の仕組みを紹介したいと思います。