Solrとは

Solrって?

  • Solrはオープンソース検索エンジンです。
  • JAVAで記述されていてサーブレットとして実装されています。TomcatやJettyなどのサーブレットコンテナの上で動きます。
  • Apacheプロジェクトで開発が進められています。 http://lucene.apache.org/solr/
  • 同じくApacheプロジェクトで開発されているLuceneをベースにしています。
  • よく聞かれる質問「SolrとLuceneって何が違うの?」
    • SolrはLuceneを内包しています。だからLuceneでできることは全てできます。
    • SolrのインデックスをLuceneを使って操作することも可能です。
    • LuceneJAVAのライブラリです。使用する場合にはJAVAでコーディングすることが必須になります。
    • SolrにはPython,Ruby等のバインディングが用意されている上に、RESTなので実質どんな言語からでもハンドリングできます。
    • シンプルですがUIも用意されているのでプログラミングなしで検索することも可能です。
    • 大雑把ですがLuceneをラッピングして使いやすくしているのがSolrと理解しても良いと思います。
  • 詳細はこちらが参考になります。ボクも少し書いています。 http://ja.wikipedia.org/wiki/Solr

どのくらいの性能がでるの?

これもハードウェアの構成やクエリの特性によってケースバイケースだとおもうのですが、とりあえずボクのところの実績を書いときます。

どのくらいの文章をインデキシングできるの?

インデキシングする文章の特性やスキーマの構成によってケースバイケースなのですが、とりあえずボクのところの実績を書いときます。

  • 日本語のWebページを毎日40〜50万ページほどインデキシングし続けています。
  • 現在は2億ページ近くインデキシングしています。
  • 現在のディスク使用量は約1TBです。
  • 毎日2GBぐらい増えていっています。
  • Luceneの設計値である21億ドキュメントが実用レベルにあるのかまでは確認できていないですが、1〜2億ぐらいなら問題なさそうです。
  • かなりドキュメント数の多いサービスでも問題なく使うことができると思います。