この記事では、全文検索サーバー Fessを利用してAmazon S3内のファイルを横断検索する方法を紹介します。
これはFess上で実際に検索を行っている画面のスクリーンショットです。
導入手順
FessでAmazon S3を横断検索するための手順を説明します。
導入の流れは次のようになります。
- Fessの起動
- プラグイン追加
- 認証設定
- Fessの設定・クローラ実行
1. Fessの起動
「起動および停止方法」を参考にFessを起動します。
2. プラグイン追加
「プラグイン」を参考にfess-ds-s3-xx.x.xをインストールします。
3. 認証設定
データを取得するためには、認証情報をパラメータとして与える必要があるので、そのための設定をします。
IMA Managerにて、Fessがリソースにアクセスするためのユーザーの追加を行います。
アクセス許可の設定は、AmazonS3ReadOnlyAccess
を与えます。
ユーザー作成後に表示される、アクセスキーID(access_key_id
)とシークレットアクセスキー(secret_key
)は、後で認証に必要になります。
4. Fessの設定・クローラ実行
Amazon S3をクロールするための設定をします。
公式ドキュメントの「データストアクロール」も参考にしてください。
4-1. クローラの設定
Fessの管理画面を開き、[クローラ] > [データストア]
と移動し、新規作成をします。
新規作成画面では、
- 名前
- ハンドラ
- パラメータ
- スクリプト
の4項目を設定して、作成を完了します。
「名前」には好きな文字列を入力してください。
「ハンドラ」はAmazonS3
を選択してください。
「パラメータ」は次のようなフォーマットで入力してください。
region=ap-northeast-1
access_key_id=AK***
secret_key=32***
region
は、S3バケットのリージョン、
access_key_id
とsecret_key
は、3.で取得したものです。
「スクリプト」は次のようなフォーマットで入力してください。
url=object.url
title=object.key
content=object.contents
mimetype=object.mimetype
filetype=object.filetype
filename=object.filename
content_length=object.size
last_modified=object.last_modified
取得出来る値のキーと値の説明は次のようになります。
キー | 値 |
---|---|
object.url | オブジェクトURL |
object.management_url | オブジェクトの管理URL |
object.key | キー |
object.e_tag | Etag |
object.contents | 中身(テキスト) |
object.mimetype | MIMEタイプ |
object.filetype | ファイル形式 |
object.filename | ファイル名 |
object.size | サイズ |
object.last_modified | 最終編集日時 |
object.owner_id | 所有者(ID) |
object.owner_display_name | 所有者(表示名) |
object.bucket_name | バケットの名前 |
object.creation_date | バケットの作成日 |
4-2. ジョブスケジューラの作成
4-1. で作成したクロールをクリックすると、クロール設定が開き、そこから「新しいジョブの作成」をします。
後からでも変更はできるので、とりあえず試す場合はそのままの設定で大丈夫です。
詳しい設定については、「スケジューラ」を参考にしてください。
4-3. クローラの実行
[システム] > [スケジューラ]
と移動し、4-2で作成したジョブを開きます。
その画面から、「今すぐ開始」をします。
状態が「実行中」から「有効」になるまで待ちます。