2016.01.06

apache solrとは?ウェブサイトのスピードアップで売上向上を目指そう

難易度
2
カテゴリー
技術ナレッジ
タグ
Web開発
サーバー設定
環境構築

160112_solr_main

今回は、サイト高速化のための3種の神器のうちの一つApache Solr(以後Solr)を知りたい、あるいはプロジェクトのパフォーマンス改善にSolrを検討している方々に対して、かしこく使えばウェブサイト高速化の強力な武器となるSolrパワーをご紹介します。

Ⅰ.高速で多様な検索能力をカンタンに導入できるSolr

Solrは「ソーラー」と発音することからもわかるようにSolar(太陽)に由来しています。ちなみに英語がネイティブな人の発音は「ソォー」と聞こえます。Apache Solrは、スタンドアロンのエンタープライズ検索エンジンサーバーで、非常に多くの優れた機能があります。これから、Solrという選択肢がなぜ良いのか、技術者以外の方にも納得していただけるように代表的な特長をご紹介したいと思います。

Solrは、javaで書かれた全文検索エンジンライブラリ ”Apache Lucene” をベースにしたオープンソースソフトウェアです。オープンソースですから無料で使用することができ、改変も自由です。オープンソースですが、商用の検索エンジンソフトを凌駕するほどの性能を持っています。例えば「ファセット検索」と呼ばれる、複数のカテゴリーを横断した検索結果の絞り込みはSolrが誇る機能です。Solrなら大規模データのファセット検索もサクサクとお手のものです。

もうひとつSolrの特徴としてSpatial Search(空間検索)があります。緯度経度を使った検索で、これにより「スカイツリーから半径5km以内のホテルというような検索が可能になります。さまざまなマッチングサービスがローンチされていくとき、空間検索は高頻度で使われるようになるでしょう。
また、開発においては、SolrはRESTライクなAPIを使用するので、開発のために特別なツールを用意する必要がありません。後ほども触れますが「インデクシングと呼ばれる検索のためのドキュメント登録、検索クエリなど、Solrとのやり取りはすべてHTTPで行えます。
160112_soler_scr01


Ⅱ.多言語対応、フィルターを使ってきめ細かな検索

Solrはマルチランゲージ、日本語、英語、中国語、ドイツ語、フランス語など世界で広く使用されている数十カ国語に対応しています。かな漢字変換や自動翻訳で文章を解析するのに使用している、日本語形態素解析用のフィルターがあるので、精度の高い検索結果が得られます。その他にも、例えば、「すずめ」でも「スズメでも同じ検索結果が得られるようにするためのフィルター、また「ネットワーク管理者」で検索したときはトークナイザが「ネットワーク」と「管理」と「者」に分けてしまうので、正しい検索結果を得るために一つの単語として検索するための辞書フィルターなど、日本語独特の表現に正しく対応するため数多くのフィルターを使うことができます。これまでは欧米で多用されてきたSolrですが、これからは日本でもSolrを使うサイトが増えてくると思われます。


Ⅲ.超高速検索を実現するためのインデクシング

Solrの超高速な検索を実現しているのがインデクシングです。RDBがデータそのものを検索するのに対して、検索エンジンではボリュームの小さい索引を検索します。その索引作成がインデクシングなのです。RESTライクなSolrでは、JSON, XML, CSVやバイナリデータをHTTP POSTすることでインデクシングできてしまいます。
また、SolrにはApache Tikaビルトインがバンドルされていて、MS-OfficeファイルやAdobe PDFなどリッチドキュメントのメタデータとテキストを抽出しインデクシングすることもできます。

160112_soler_scr02160112_soler_scr03


Ⅳ.多くの大規模サイトがSolrを使用

まだ日本ではそう多くないですが、すでに欧米では多くの大規模サイトでSolrが使用されています。eBay(http://www.ebay.com/) , ネットフリックス(https://www.netflix.com/), AOL(http://www.aol.com/), インスタグラム(https://www.instagram.com/), ディズニー(http://www.disney.com/), イエローページ(http://www.yellowpages.com/), ホワイトハウス (https://www.usa.gov/)や、4450億ページにおよぶ世界中の過去のホームページを記録しているインターネットアーカイブ「ウェイバックマシン(https://archive.org/)などきりがありません。日本でもこれからどんどんSolrの活用が増えていくでしょう。

160112_soler_scr024


Ⅴ.クラウドフレンドリーなSolr

ユーザーの増加や検索対象の増加に伴い検索スピードが落ちてきたと感じたとき、容易に改善できるのもSolrのいいところです。

一つは、単純にハードの高性能化です。CPUアップグレード、メモリ増設、HDDの高速化(SSD化など)は、Solrアプリケーションにはなにも変更を加える必要がありません。はじめからクラウドサーバーを選択しておけば、ハード的なアップグレードもさらに簡単ですね。

また、Solr側での対応策もあります。Solrには通常モードに加え、SolrCloudというモードがあり、SolrCloudモードで起動すると、複数のSolrサーバーで対象を分割して検索できる分散冗長構成、いわばクラウドネイティブSolrになります。はじめに設定は必要ですが、設定さえしてしまえば、RAIDが一つのHDDに見えるように、複数のSolrサーバーがまるで一つのSolrサーバーのように扱えます。

アップグレードに後手は禁物ですが、過剰に事前にアップグレードするのもコストを考えると避けたいですよね。Solrには、これらのアップグレードや改修の必要性やタイミングを知るために必要なログ監視機能も用意されています。Solrの管理画面からいつでも確認して最適な対応をすることができます。


Ⅵ.日本でSolrの普及がいまひとつ遅れている理由

RDB(リレーショナルDB)を使っているが検索に時間がかかるようになってきた」
「全文検索機能がなく追加したい」
というならSolr導入を検討する価値ありです。しかし、Solrに関する日本語の文献が少ないという理由から、Solrによる開発は難しいと考えている開発者が少なくないのでは?日本語の資料が少ないというのはそのとおりなのですが、だからといって諦めるのはもったいなさすぎます。

ある国内ECサイトリニューアル案件で、国内の開発会社が高くて到底予算内に収まらないというとき、アメリカの開発会社は半分以下の金額で請け負ってくれました。開発を発注する立場の方ならご経験があると思いますが、技術力の高い人の人月単価は高いですが、その分短納期で開発できるので、コストの安い人に依頼するよりも結果的に低予算で済むということがありますよね。最新のウェブテクノロジーを使う場合、そうした現象になることが多いのです。Solrの使用を検討したいが、開発者がいないという場合は、ご一報ください。案件に応じて適切な開発グループをご紹介できるかもしれません。やり取りが英語のためブリッジSEが必要ですが、高い技術を低コストで実現できる一つの方法として選択肢に加えてみてはいかがでしょうか。

この記事を書いた人

植月泰彦 & Wang Baoxing

植月泰彦 & Wang Baoxing

TV番組制作、PCメーカー総合企画などを経て、1991年東京都日本橋で広告制作会社を設立。1995年よりホームページ開発に専念。数多くのウェブサイトの制作に携わる。過去15年で40回渡米し、つねに最先端のインターネットビジネスを吸収。現在はITコンサルティングとビジネスプランニングの分野で活動中。(社)知財ブランド協会パートナー /知財登録コンサルタント。プライベートではオートバイ、ゴルフ、料理、合気道など多趣味。浜松在住(自称浜松観光大使)

ご相談はお気軽に⇒http://www.hghg.co/

Wang Baoxing
米国大手IT企業の開発部門シニアマネージャー。10億ドルを売り上げる大規模企業向けソフトウェアをはじめ、企業のデータ移行プロジェクト、エンタープライズ製品のチューニング、大規模ECサイトの開発・管理も行っている。現在は常に15以上のプロジェクトを管理し、これまでも30以上のメガプロジェクトの責任者として成功を収めた。来日経験があり、日本料理をこよなく愛し、日本文化にはまっている日々を過ごす。

この記事を書いた人

植月泰彦 & Wang Baoxing

植月泰彦 & Wang Baoxing

TV番組制作、PCメーカー総合企画などを経て、1991年東京都日本橋で広告制作会社を設立。1995年よりホームページ開発に専念。数多くのウェブサイトの制作に携わる。過去15年で40回渡米し、つねに最先端のインターネットビジネスを吸収。現在はITコンサルティングとビジネスプランニングの分野で活動中。(社)知財ブランド協会パートナー /知財登録コンサルタント。プライベートではオートバイ、ゴルフ、料理、合気道など多趣味。浜松在住(自称浜松観光大使)

ご相談はお気軽に⇒http://www.hghg.co/

Wang Baoxing
米国大手IT企業の開発部門シニアマネージャー。10億ドルを売り上げる大規模企業向けソフトウェアをはじめ、企業のデータ移行プロジェクト、エンタープライズ製品のチューニング、大規模ECサイトの開発・管理も行っている。現在は常に15以上のプロジェクトを管理し、これまでも30以上のメガプロジェクトの責任者として成功を収めた。来日経験があり、日本料理をこよなく愛し、日本文化にはまっている日々を過ごす。

docker-tips_bnr

writer