Software Design plusシリーズ[改訂新版]Apache Solr入門
――オープンソース全文検索エンジン

[表紙][改訂新版]Apache Solr入門――オープンソース全文検索エンジン

B5変形判/352ページ

定価(本体3,600円+税)

ISBN 978-4-7741-6163-1

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

最新版Apaceh Solr Ver.4.5.1に対応するため大幅な書き直しと原稿の追加を行い,現在の開発環境に合わせて完全にアップデートしました。Apache Solrは多様なプログラミング言語に対応した全文検索エンジンです。システムに検索機能を実装することは,自社の情報資産を守ることと,活用することその両方を一挙に実現します。そのためApache Solrを自社の情報資産活用に使うことが注目されています。本書は,Solrの基本機能を原理としくみから詳しく紹介し,どのようにSolrを実装していくか豊富なサンプルとともに解説を行います。

こんな方におすすめ

  • 検索システムに興味のある方。前提として,JavaScriptやPHP,Javaなどのプログラミング経験がある方

著者の一言

本書は,情報検索に興味を持つ,あらゆる人を対象としています。学生から社会人,週末プログラマから職業プログラマ,SE,プログラミングをしない情報システムを使うだけの人,検索エンジンを比較検討しようとしている人……制限はありません。それぞれの立場でSolr をお楽しみください。しかしながら,本書はSolr の技術解説書でもあり,Solr をインストールしたりサンプルコードを設定したりする場面もあります。そのときは技術的なバックグラウンドのある方は若干有利でしょう。自分の経験に感謝しつつ,コマンドを入力したり,検索して結果を確認したり,より深くお楽しみください。

サンプルコードのダウンロードと本書のサポート

本書で紹介しているサンプルプログラムや設定ファイルは,技術評論社のホームページをはじめ,執筆陣が勤務する下記の会社のホームページからダウンロードできます。

本書の執筆には万全を期しましたが,ソフトウェア同様,残念ながら不具合が紛れ込む可能性があります。万一誤りを発見したり,手順どおり試したのに動かないことなどがありましたら,上記ホームページの問い合わせフォームなどからお気軽にご連絡ください。また,下記ブログのコメント欄でも受け付けます。

いただいた問い合わせには,個別に回答したり,ブログの記事上で回答したり,正誤表を作成したりなど,何らかの対応をしたいと思います。なお対応には時間がかかる場合がありますので,あらかじめご了承ください。

本書のサンプル

本書の一部ページを,PDFで確認することができます。

本書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。

サンプル画像1

サンプル画像2

サンプル画像3

目次

第1章 イントロダクション

Apache Solrとはどのような検索エンジンなのかその特徴を述べ,次に全文検索の基礎知識である転置索引と転置索引を使った検索について説明します。インストールして実行する方法を,次にアーキテクチャを説明します。

第2章 スキーマの設定

Solrのインデックスは,RDBのテーブルの「カラム」に相当する「フィールド」で構成されています。インデックスがどのような型のフィールドで構成されているかという定義は,Solrのスキーマ定義ファイルで設定を行います。

第3章 インデックスの作成

Solrのインデックスの作成,更新の方法,それにかかわる設定や属性について学びます。

第4章 検索する

Solrで,どういった検索が行えるのか(検索式の書き方,ソートの指定方法,取得件数指定方法など),検索の付加機能(ファセット,ハイライト機能,キャッシュ)にどういったものが用意されているのかについて説明していきます。

第5章 クライアントプログラミング

いろいろなプログラミング言語によるSolrサーバへのアクセス方法について学んでいきます。共通の機能を持ったサンプルアプリケーションについてプログラミング言語ごとに説明していきます。

第6章 データのクローリング

検索対象文書のデータクローリングとして,データベースやRSSフィードなどのXMLファイルをSolrに取り込む「データインポートハンドラ(DIH)」機能や,Solrと親和性が高く,ファイルサーバやCMSをクロールしてSolrに取り込むことができる「Apache ManifoldCF」を紹介します。

第7章 より高度な検索

Solrのより高度な検索について学びます。本章前半では,Solrの「サーチコンポーネント」という機能を用いて,検索結果のランキングを調整したり,検索結果にさまざまな関連情報を付加する方法について学びます。

第8章 クラスタ構築と運用

分散インデックス・分散検索とレプリケーションを用いた検索クラスタとSolr4.0から新たに追加されたSolrCloud を用いた検索クラスタの構築および運用方法を紹介します。

第9章 開発および運用のTIPS

Solrを実際のサービスで利用しているリクルートにおける開発・運用上の経験を,TIPSとして紹介します。

Appendix

スキーマ操作/マルチコア操作/コレクション操作について紹介します。

著者プロフィール

大谷純(おおたにじゅん)

第1章,第4章,第5章のJava,第7章の7.1.4 ~ 7.1.8を担当。
1975年広島県出身。広島市立大学情報科学研究科修了。(株)シーマークに勤務。Solr勉強会の主催を2012年11月から担当。lucene-gosenのコミッター。最近では検索システム構築支援などを主に担当。好きな言葉は「臨機応変」。現在,リクルートテクノロジーズ・アドバンストテクノロジーラボ(ATL)をコミュニティリードとして支援中。
また,本書の執筆をリード。
ブログ:http://blog.johtani.info
lucene-gosen:http://code.google.com/p/lucene-gosen/


阿部慎一朗(あべしんいちろう)

第6章を担当。
1978年千葉県出身。ソフトハウスにて基幹系業務システムの開発,ソフトウェアベンダーにて給与人事系業務ソフトウェアの設計・開発を経て,2011年に(株)ロンウイットに入社。2011年5月からApache ManifoldCFのコミッター兼PMCメンバー。現職では,SolrやManifoldCFのトレーニングやサポート,エンタープライズサーチのコンサルティングに従事。


大須賀稔(おおすかみのる)

第5章のPHP/Ruby/Python/Perl,第7章の7.1.1 ~ 7.1.3,第8章,付録3を担当。
情報系専門学校講師,メーカー系SI企業を経て2000年から(株)インフォシーク(2003年に楽天へ吸収合併),米Ask.comのJVである(株)アスクドットジェーピーを経て2009年に楽天(株)へ復帰。2012年より(株)ロンウイットにてSolrの導入支援や検索精度改善のコンサルティングに携わる。
Apache Software Foundationの運営する,Solrの関連プロジェクトであるManifoldCFのコミッター兼PMCメンバー。


北野太郎(きたのたろう)

第9章,付録2を担当。
1982年佐賀県出身。大手SI企業を経て2013年に(株)リクルートテクノロジーズへ転職。現在はリクルートの提供するさまざまなWebサービスに対して,Solrの利用を推進,展開しつつ,さらなる機能性と利便性の向上のために日々改善を行っている。


鈴木教嗣(すずきのりつぐ)

第2章,第7章の7.2 ~ 7.4,付録1を担当。
1980年千葉県出身。拓殖大学工学部情報工学科修了。(株)NTTデータCCSに勤務。携帯電話端末の組み込み系システム業務等を経て,2008年よりSolrを利用した検索エンジン基盤の導入推進・運用業務に携わる。現在,リクルートテクノロジーズ・アドバンストテクノロジーラボ(ATL)を,UIMA含めた幅広い分野で支援中。


平賀一昭(ひらがかずあき)

第3章を担当。
通信系SI企業からインフォシーク(買収により楽天),ファスト サーチ&トランスファ(買収によりマイクロソフト),ベイシス・テクノロジーを経て,2012年より楽天(株)にて次世代検索プラットフォームの開発,検索精度の改善に携わっている。


株式会社リクルートテクノロジーズ

http://recruit-tech.co.jp
2012年10月リクルート分社化により,リクルートグループのIT・ネットマーケティングテクノロジー開発機能会社として設立。これまでも社内ツールのオープンソース公開や各種講演,Hadoopカンファレンスや勉強会の主催などを通してOSSに貢献。「業界を驚かせるレベルでテクノロジーの開拓を行い,業界ルールをイノベーションにより変革する」を掲げ,本書は社内ラボ組織たるATLが主導。


株式会社ロンウイット(かぶしきがいしゃろんうぃっと)

http://www.rondhuit.com/
Apache Lucene/Solrのコミッターでもある関口が2006年に設立。Apache SolrやApache ManifoldCFなど,OSSの検索エンジンやクローラー製品に関する教育サービスをはじめ,コンサルティング,サポートサービスの提供およびサブスクリプション・パッケージの開発/販売を行う。