1 2 3 →

はじめに

 ドキュメントは日々増えて続けています。ドキュメントの数が多くなるほど、目的の情報は見つけにくくなるため、それらのドキュメントを効率よく管理する方法が必要です。その解決策の一つとして、複数のドキュメント(ファイル)をまたいで検索することができる「全文検索サーバー」の導入が挙げられます。

 Fessは簡単に導入できる、Javaベースのオープンソース全文検索サーバーです。Fessの検索エンジン部分にはApache Solrを利用しています。Solrは、2億ドキュメントもインデックス可能と言われる非常に高機能な検索エンジンです。一方で、Apache Solrで検索システムを構築しようとする場合、クローラ部分などを自分で実装する必要性があります。Fessではクローラ部分にSeasar Projectから提供されるS2Robotを利用して、ウェブやファイルシステム上の様々な種類のドキュメントを収集して検索対象とすることができます。

 そこで、本記事ではFessによる検索サーバーの構築方法について紹介します。

対象読者

  • 検索システムを構築してみたい方
  • 既存のシステムに検索機能を追加してみたい方
  • Apache Solr に興味がある方

必要な環境

 この記事の内容に関しては次の環境で、動作確認を行っています。

  • Windows XP(Service Pack3)
  • JDK 1.6.0_16

Fessの特徴

 Fessはウェブやファイルシステムを対象とした、オープンソースの全文検索システムです。SourceForge.jpのFessサイトにおいてApacheライセンスで提供されています。

Javaベースの検索システム

 Fessは下図の通り、さまざまなオープンソースプロダクトを利用して構築されています。

Fessの構造
Fess の構造

 配布物はTomcatにFessとSolrのwarファイルが配備された形になります。Fessのwarファイルは検索画面や管理画面を提供しています。Fessは開発フレームワークとしてSeasar2を利用し、プレゼンテーション層にはSAStrutsを採用しています。そのため、画面などのカスタマイズが必要な場合はJSPを修正することで簡単に対応できます。

 また、設定データやクロールデータを保存するために、組み込みデータベースのH2 Databaseを利用し、O/RマッパーのDBFluteを利用してアクセスしています。S2ChronosはSeasarプロジェクトで提供されるスケジューリングフレームワークで、Fessでは指定された時間にクロールするために利用しています。SolrとS2Robotについては後述します。

 FessはJavaベースのシステムとして構築されているので、どのプラットフォームでも実行可能です。各種設定もウェブブラウザから簡単に行えるUIを備えています。

Apache Solrを検索エンジンとして利用

 Apache SolrはApache Software Foundationから提供される、Luceneをベースとしたエンタープライズ向け検索サーバーです。特徴として、ファセット検索、検索結果の強調表示、複数の出力形式などをサポートしていることが挙げられます。また、検索対象のドキュメント数は、Solrサーバーの構成次第で数億ドキュメントにもなり、大規模サイトへもスケールアウトできる検索サーバーです。利用実績も日本でも数多くあり、注目されている検索エンジンの一つであると言えます。

 Fessでは、検索エンジン部分にApache Solrを採用しています。Fessの配布物にはSolrが同梱されていますが、FessのSolrサーバーを別のサーバーへ切り出して利用することも可能です。また、Fessは複数のSolrサーバーをグループとして管理し、冗長構成を組むことが可能です。このようにFessではSolrのもつ高い拡張性を活かすことができる設計になっています。

S2Robotをクロールエンジンとして利用

 S2RobotはSeasarプロジェクトから提供される、クローラフレームワークです。S2Robotはウェブ上やファイルシステム上にあるドキュメントを巡回して収集することができます。ドキュメント収集もマルチスレッドで、同時に複数のドキュメントを効率よく処理することが可能です。また、扱えるドキュメントはHTMLはもちろんのこと、WordやExcelなどのMS Office系ファイル、zipなどのアーカイブファイル、画像や音声ファイルなど、数多くのフォーマットに対応しています(画像や音声ファイルの場合はメタ情報を取得します)。

 FessではS2Robotを利用して、ウェブ上およびファイルシステム上のドキュメントを巡回し、テキスト情報を収集します。対応するファイルフォーマットもS2Robotが扱えるものを検索対象とすることができます。S2Robotでクロール実行するためのパラメータなどはFessの管理UIから設定することが可能です。

モバイル対応

 Fessはdocomo、au、ソフトバンクの携帯電話端末での閲覧にも対応しています。ドキュメントをインデックスする際にどの端末で検索結果を閲覧可能にするかを指定できます。本稿ではモバイル端末での閲覧については省略し、次回説明する予定です。


1 2 3
→
INDEX
Fessで作るApache Solrベースの全文検索サーバー ~ 導入編
Page1
はじめに
対象読者
必要な環境
Fessの特徴
インストールと起動
インデックスの作成から検索まで
検索画面のカスタマイズ
まとめ
参考資料
プロフィール
菅谷 信介 スガヤ シンスケ

N2SM, Inc.にソフトウェア・アーキテクトとして勤務。
Apache Portalsにて、コミッター兼PMCとして活動。その他、Seasar Projectなどのオープンソースプロジェクトででコミッターとしても活動。オープンソース関連の活動をブログTwitterに投稿。


プロフィール
曽根 孝明 ソネ タカアキ

大学院生。
N2SM, Inc. でインターン中。


注目の求人情報
コンサルタント/高度な技術力が強みの戦略ファーム
・クライアントにインタビューを行いながら、対象業務を分析して、ビジネス上の課題と解決策を立案する...
コンサルタント/少数精鋭のWeb戦略コンサルティングファーム
ユーザビリティーコンサルタント: 論理的な観点からサイトや製品のコンセプト設計~詳細な画面・製品...
プロジェクトマネージャー/成長著しいPMO専門企業
プロジェクトマネジメントに関するコンサルティング業務 ・SIerとシステムユーザーとなる事業会社の間...

(最新日付順)
名前(ゲストの方もコメントをどうぞ):*
アイコン:
なし

内容(テキストのみ1200文字まで):*

投稿規定に同意して

スポンサーサイト

この記事のトラックバックURL: