この記事では、全文検索サーバー Fessを利用してBOX内のファイルを横断検索する方法を紹介します。
これはFess上で実際に検索を行っている画面のスクリーンショットです。
導入手順
FessでBOXを横断検索するための手順を説明します。
導入の流れは次のようになります。
- プラグイン追加
- Fessの起動
- 認証設定
- Fessの設定・クローラ実行
1. プラグイン追加
Fessの現バージョン(13.1.0)には、デフォルトでは含まれていない機能であるため、自分で追加する必要があります。
ここからfess-ds-box-xx.x.x.jarをダウンロードします。
ダウンロードしたjarファイルは$FESS_HOME/app/WEB-INF/lib/
に配置します。
2. Fessの起動
このページを参考にFessを起動します。
3. 認証設定
データを取得するためには、認証情報をパラメータとして与える必要があるので、そのための設定をします。
JWTアプリケーションの設定を参考にアプリケーションの作成と承認を行います。
入手したconfig.jsonは後で利用します。
4. Fessの設定・クローラ実行
Boxをクロールするための設定をします。
公式ドキュメントのデータストアクロールも参考にしてください。
4-1. クローラの設定
Fessの管理画面を開き、[クローラ] > [データストア]
と移動し、新規作成をします。
新規作成画面では、
- 名前
- ハンドラ
- パラメータ
- スクリプト
の4項目を設定して、作成を完了します。
「名前」には好きな文字列を入力してください。
「ハンドラ」はBox
を選択してください。
「パラメータ」は次のようなフォーマットで入力してください。
client_id=hdf*****************************
client_secret=kMN**************************
public_key_id=4t******
private_key=-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIIFDj...=\n-----END ENCRYPTED PRIVATE KEY-----\n
passphrase=7ba*****************************
enterprise_id=19*******
キーと値は3. で入手したconfig.jsonのものと対応しています。
「スクリプト」は次のようなフォーマットで入力してください。
url=file.url
title=file.name
content=file.contents
mimetype=file.mimetype
filetype=file.filetype
filename=file.name
content_length=file.size
created=file.created_at
last_modified=file.modified_at
取得出来る値のキーと値の説明は次のようになります。
ここで言う「File」はBoxの1ファイルを指しています。
キー | 値 |
---|---|
file.url | Fileを閲覧するリンク |
file.contents | Fileの中身(テキスト) |
file.mimetype | FileのMIMEタイプ |
file.filetype | Fileの種類 |
file.name | Fileの名前 |
file.description | Fileの説明 |
file.size | Fileのサイズ |
file.created_at | Fileの作成日時 |
file.last_modified_at | Fileの最終編集日時 |
file.download_url | Fileのダウンロード可能なリンク |
他にも、ファイルオブジェクトのフィールドに対応しています。
4-2. ジョブスケジューラの作成
4-1. で作成したクロールをクリックすると、クロール設定が開き、そこから「新しいジョブの作成」をします。
後からでも変更はできるので、とりあえず試す場合はそのままの設定で大丈夫です。
詳しい設定については、スケジューラを参考にしてください。
4-3. クローラの実行
[システム] > [スケジューラ]
と移動し、4-3で作成したジョブを開きます。
その画面から、「今すぐ開始」をします。
状態が「実行中」から「有効」になるまで待ちます。
4-4. 検索のテスト
検索フォームから適当に検索してみます。