Apache Solr入門
――オープンソース全文検索エンジン
――オープンソース全文検索エンジン
2010年2月20日紙版発売
関口宏司,大谷純,三部靖夫,武田光平,中野猛 著,株式会社ロンウイット 監修
B5変形判/320ページ
定価3,960円(本体3,600円+税10%)
ISBN 978-4-7741-4175-6
ただいま弊社在庫はございません。
書籍の概要
この本の概要
Apache Solrとは,オープンソースの検索エンジンです。Apache LuceneというJavaの全文検索システムをベースに豊富な拡張性をもたせ,多くの開発者が利用できるように作られました。検索というと,Googleのシステムを使っている企業Webページが多いですが,自前の検索エンジンがあると顧客にとって本当に必要な情報を提供できます。SolrはJavaだけでなく,PHP,Ruby,Python,Perl,Javascriptなどでもプログラミング可能です。本書は検索エンジンの基礎から応用までじっくり解説します。
こんな方におすすめ
- Web開発者
- プログラマ(PHP,Java,Ruby,Python,Perl,JavaScript,Velocity)
著者の一言
Solr はApache Luceneを使って構築されたオープンソースの検索エンジン・サーバです。Luceneはすでに世界中のシステムで使われている実績を持っていますが,Javaで書かれた検索エンジン・ライブラリであり,利用するにはJavaのプログラムをたくさん書かなければいけません。それに対してSolrは,LuceneをラップしてHTTP/XMLというRESTfulな今どきのインタフェースでアクセスできるようになっています。いうまでもありませんがインタフェースを簡単にしただけでなく,機能や性能を向上させるいろいろな仕掛けも付加されています。
本書は,情報検索に興味を持つ,あらゆる人を対象としています。学生から社会人,週末プログラマから職業プログラマ,SE,プログラミングをしない情報システムを使うだけの人,検索エンジンを比較検討しようとしている人……制限はありません。それぞれの立場でSolr(ソーラー)をお楽しみください。しかしながら本書はSolrの技術解説書でもあり,Solrをインストールしたりサンプルコードを設定したりする場面もあります。そのときは技術的なバックグラウンドのある方は若干有利でしょう。自分の経験に感謝しつつ,コマンドを入力したり,検索して結果を確認したり,より深くお楽しみください。
本書のサンプル
本書の一部ページを,PDFで確認することができます。
- サンプルPDFファイル(177KB)
目次
- はじめに
- 謝辞
- 対象読者
- 本書の構成と読み方
- サンプルコードのダウンロードと本書のサポート
chapter1イントロダクション
- 1.1 Apache Solrとは何か?
- 1.1.1 Solrの特徴
- 1.2 全文検索と転置索引(インデックス)の基礎知識
- 1.3 形態素解析とN-gram
- 1.4 Solrのインストール
- 1.4.1 Javaのインストール
- 1.4.2 Solrのインストール(全プラットフォーム共通)
- 1.5 Solrの付属サンプルを実行する<
- 1.5.1 Solrの起動
- 1.5.2 サンプルデータの登録
- 1.5.3 サンプルデータの検索
- 1.6 Solrを日本語で使えるようにする
- 1.6.1 N-gram
- 1.6.2 形態素解析
- 1.7Solrのアーキテクチャ
- 1.8Solrホームディレクトリ
chapter2スキーマの設定
- 2.1 スキーマ定義ファイル
- 2.1.1 schema.xmlの構成要素
- [コラム] RDBとSolrの"スキーマ"に関するFAQ
- 2.1.2 schema.xmlファイルの配置場所
- 2.1.3 schema.xmlのバージョン
- 2.2 フィールド型
- 2.2.1 非テキスト系フィールド型
- 2.2.2 テキスト系フィールド型
- 2.2.3 代表的なトークナイザ
- 2.2.4 代表的なトークンフィルタ
- 2.3 フィールドの定義
- 2.3.1 フィールドの定義
- 2.3.2 ダイナミックフィールドの定義
- 2.3.3 ユニークキーフィールドの定義
- 2.3.4 デフォルト検索フィールドの定義
- 2.3.5 デフォルトオペレータの定義
- 2.3.6 コピーフィールドの定義
- 2.4 Similarityの定義
- 2.5 書籍サンプルでの定義例
- 2.5.1 書籍データフィールドの説明
- 2.5.2 フィールド型text_sen
- 2.5.3 フィールド型text_cjk
- 2.6 analysis.jspを使う
- 2.6.1 text_sen
- 2.6.2 text_cjk
Chapter3 インデックスの作成
- 3.1 ドキュメントの追加
- 3.1.1 XMLファイルによる登録
- 3.1.2 CSVファイルによる登録
- 3.1.3 stream.file/stream.urlパラメータによる登録
- 3.1.4 インデックスディレクトリ
- 3.2 ドキュメントの更新
- 3.2.1 numDocsとmaxDoc
- 3.2.2 <add/>のoverwrite属性
- 3.3 ドキュメントの削除
- 3.4 コミット/最適化/ロールバック
- 3.4.1 コミット
- 3.4.2 最適化
- 3.4.3 自動コミット
- 3.4.4 <add/>のcommitWithin属性
- 3.4.5 ロールバック
- 3.4.6 管理画面のstats情報
- 3.5 インデックス作成に関連するsolrconfig.xmlの設定
- 3.6 インデックスの中を見る
- 3.6.1 スキーマブラウザ
- 3.6.2 Luke
chapter4検索
- 4.1 検索の基本動作
- 4.1.1 検索のしくみ
- 4.1.2 検索リクエストとパラメータ
- 4.1.3 検索式
- 4.1.4 リクエストハンドラ(サーチハンドラ)
- 4.1.5 レスポンスライタ
- 4.2 検索結果レスポンス
- 4.2.1 ヘッダ情報(responseHeader)
- 4.2.2 検索結果(result)
- 4.3 結果のソート
- 4.3.1 スコアによるソート
- 4.3.2 特定フィールドでのソート
- 4.3.3 ランダムソート
- 4.4 ハイライト(要約と検索語の強調表示)
- 4.4.1 ハイライトの基本
- 4.4.2 ハイライトの結果(XML)
- 4.4.3 その他ハイライト用のパラメータ
- 4.4.4 ハイライターのしくみ
- 4.4.5 ハイライターの設定
- [コラム] ハイライト処理を速くするには
- 4.5 ファセットの表示と絞り込み検索
- 4.5.1 ファセットとは
- 4.5.2 Solrのファセット機能
- 4.5.3 絞り込み検索(フィルタクエリ:fq)
- 4.5.4 ファセットのしくみ
- 4.6 キャッシュ
- 4.6.1 検索結果キャッシュ(queryResultCache)
- 4.6.2 フィルタキャッシュ(filterCache)
- 4.6.3 ドキュメントキャッシュ(documentCache)
- 4.6.4 フィールド値キャッシュ(fieldValueCache)
- 4.6.5 ユーザ定義キャッシュ
- 4.6.6 キャッシュの設定
- 4.6.7 キャッシュの初期生成および再生成
- 4.6.8 キャッシュの統計情報
chapter5クライアントプログラミング
- 5.1 Java
- 5.1.1 SolrJの構成
- 5.1.2 インデクシングプログラム
- 5.1.3 SolrJによる検索プログラム
- 5.2 PHP
- 5.2.1 PHPによる検索プログラム
- 5.3 Ruby
- 5.3.1 solr-rubyのインストール
- 5.3.2 インデクシングプログラム
- 5.3.3 CSVファイルの一括登録
- 5.3.4 Ruby on Railsによる検索プログラム
- 5.3.5 Flareを使ってみる
- 5.4 Python
- 5.4.1 Djangoによる検索プログラム
- 5.5 Perl
- 5.5.1 WebService::Solr
- 5.5.2 Mojo (Mojolicious)
- 5.5.3 Data::Page::Navigation
- 5.5.4 変換プログラムの作成
- 5.5.5 動作確認
- 5.6 JavaScript
- 5.6.1 JavaScriptによる検索プログラム
- 5.7 VTL(Velocity)
- 5.7.1 VelocityResponseWriterを使うための準備作業
- 5.7.2 Velocityテンプレートファイルの説明
chapter6データインポートハンドラ
- 6.1 データインポートハンドラとは
- 6.2 Data Import Handlerの設定方法
- 6.3 RDBからのインポート
- 6.4 XMLからのインポート
chapter7マルチコア
- 7.1 マルチコアとは
- 7.2 利用シーン
- 7.3 準備する
- 7.4 操作する
- 7.5 実際の利用
chapter8分散検索
- 8.1 分散検索のしくみ
- 8.2 分散検索サーバのセットアップと検索の実行
- 8.2.1 複数のSolrサーバのセットアップ
- 8.2.2 分散検索サーバへの文書の登録
- 8.2.3 分散検索クエリの送信
- 8.3 分散検索の運用上の注意事項
- 8.3.1 文書を複数のSolrサーバに振り分けて登録する方法
- 8.3.2 ユニークキーに関する制限
- 8.3.3 利用可能なSearchComponentの制限
- 8.3.4 _サーブレットコンテナの同時に処理可能なリクエスト数上限に起因するデッドロックの発生
- 8.3.5 URL文字数の上限に起因するシャード数の上限
chapter9サーチコンポーネント
- 9.1 サーチコンポーネントとサーチハンドラ
- 9.2 「もしかして……」の実現 ―SpellCheckComponent
- 9.2.1 スペルチェック用辞書インデックスの準備
- 9.2.2 solrconfig.xmlの設定
- 9.2.3 schema.xmlの設定
- 9.2.4 スペルチェックの実行
- 9.3 お勧め商品の提示 ―MoreLikeThisComponent
- 9.4 相場の表示 ―StatsComponent
- 9.5 検索語のサジェスチョン ―TermsComponent
- 9.6 意図的なランクアップ ―QueryElevationComponent
- 9.7 ドキュメントの単語情報の表示 ―TermVectorComponent
- 9.7.1 schema.xmlへの設定
- 9.7.2 solrconfig.xmlへの設定
- 9.7.3 TermVectorComponentの実行
- 9.8 検索結果のクラスタリング ―ClusteringComponent
- 9.8.1 Solrの起動とサンプルデータの登録
- 9.8.2 Carrot2 Workbench
chapter10実践!Solr運用TIPS
- 10.1 ポイントとなるSolrの動き
- 10.2 シノニム
- 10.3 schema.xmlのTIPS
- 10.4 ログの見かた
- 10.5 モニタリングと監視
- 10.6 レプリケーション
- 10.7 XSLTの利用
- 10.8 その他
Appendix1TomcatでSolrを使う
Appendix2Cellとは
この本に関連する書籍
-
[改訂新版]Apache Solr入門――オープンソース全文検索エンジン
最新版Apaceh Solr Ver.4.5.1に対応するため大幅な書き直しと原稿の追加を行い,現在の開発環境に合わせて完全にアップデートしました。Apache Solrは多様なプログラミ...
-
Mapion・日本一の地図システムの作り方
日本オリジナルの地図サービスを開発し,月間6000万PV超える莫大なアクセスを捌くWebサービスを運営するマピオン。本書は同社の技術を余すことなく公開する。「大量アク...
-
サーバ構築の実際がわかる Apache[実践]運用/管理
本書はApacheの基礎から導入(CentOS/Red Hat/Fedora/Debian/Ubuntu/Windows/Mac OS X)をはじめ,設定ファイルであるhttpd.confの解説,拡張モジュールを解説し...
-
Google App Engine for Java[実践]クラウドシステム構築
Google App EngineはGoogleの提供するクラウド環境です。Python版に続いてこの春,Java版が発表されたことで,クラウドベースのシステム構築が,いよいよ業務レベルで現...
-
Java開発者のためのAjax実践開発入門
『AjaxとJavaのより良い関係構築に!』AjaxをJava開発者の視点から再検討。さらにオブジェクト指向の視点からAjax全般を復習し,Ajaxライブラリの使い方,DWRやAjax4jsf...
-
Apache Lucene 入門 ― Java・オープンソース・全文検索システムの構築
Luceneは全文検索システムを構築するためのJavaのライブラリです。 本書は,全文検索システムの仕組みと機能を初心者にもわかりやすく解説し,豊富なサンプルコードで実...