この記事では、全文検索サーバー Fessを利用してGoogleDrive内のファイルを横断検索する方法を紹介します。
これはFess上で実際に検索を行っている画面のスクリーンショットです。
導入手順
FessでGoogleDriveを横断検索するための手順を説明します。
導入の流れは次のようになります。
- プラグイン追加
- Fessの起動
- 認証設定
- クローラの設定・実行
1. プラグイン追加
Fessの現バージョン(12.3.2)には、デフォルトでは含まれていない機能であるため、自分で追加する必要があります。
ここからfess-ds-gsuite-12.2.0.jarをダウンロードします。
ダウンロードしたjarファイルは[Fessのパス]/app/WEB-INF/lib/
に配置します。
2. Fessの起動
このページを参考にFessを起動します。
3. 認証設定
データを取得するために認証情報をパラメータとして与える必要があり、そのための設定を行います。
3-1. プロジェクトを作成
https://console.developers.google.com/ にアクセスして、新しいプロジェクトを作成します。
プロジェクト名は自分で分かれば何でも大丈夫です。
3-2. Google Drive APIを有効化
ダッシュボードの左欄から「ライブラリ」を開き、「Google Drive API」を有効化します。
これが無いと、GoogleDriveのファイルにアクセスすることが出来ません。
3-3. 認証情報を作成
ダッシュボードの左欄から「認証情報」を開き、認証情報(サービスアカウント キー)を作成します。
サービスアカウント名は自分で分かれば何でも、役割は設定しなくても大丈夫です。
作成が終わると認証情報を含むJSONがダウンロードされます。
このJSONの中身を後々利用します。
3-4. サービスアカウントにフォルダを共有
GoogleDriveを開いて、検索対象としたいフォルダをサービスアカウントに共有します。
共有の仕方は、フォルダを右クリック→共有で、先程のJSON内の"client_email"の値を入力します。
この時、通知がONだと、Mailer Daemonさんからメールが来ることになるのでOFFにしましょう。
4. クローラの設定・実行
GoogleDriveをクロールするための設定をします。
公式ドキュメントのこのページも参考にしてください。
4-1. クローラの設定
Fessの管理画面を開き、クローラ > データストア
と移動し、新規作成をします。
新規作成画面では、
- 名前
- ハンドラ
- パラメータ
- スクリプト
の4項目を設定して、作成を完了します。
「名前」には好きな文字列を入力してください。
「ハンドラ」はGSuiteを選択してください。
「パラメータ」は次のようなフォーマットで入力してください。
private_key=-----BEGIN PRIVATE KEY-----\nMIIEv ... =\n-----END PRIVATE KEY-----\n
private_key_id=46812 ... b33f8
client_email=****@****.iam.gserviceaccount.com"
キーと値は3-3でダウンロードしたJSONのキーと値に対応しています。
「スクリプト」は次のようなフォーマットで入力してください。
title=files.name
content=files.description+"\n"+files.contents
mimetype=files.mimetype
created=files.created_time
last_modified=files.modified_time
url=files.web_view_link
thumbnail=files.thumbnail_link
取得出来る値のキーと値の説明は次のようになります。
ここで言う「File」はGoogleDriveの1ファイルを指しています。
キー | 値 |
---|---|
files.name | Fileの名前 |
files.description | Fileの説明 |
files.contents | Fileの中身(テキスト) |
files.mimetype | FileのMIMEタイプ |
files.created_time | Fileの作成日時 |
files.modified_time | Fileの最終編集日時 |
files.web_view_link | FileをWeb上で閲覧するリンク |
files.thumbnail_link | Fileのサムネイルを取得するリンク |
4-2. ジョブスケジューラの作成
4-1で作成したクロールをクリックすると、クロール設定が開き、そこから「新しいジョブの作成」をします。
後からでも変更はできるので、とりあえず試す場合はそのままの設定で大丈夫です。
詳しいジョブスケジューラの設定については、このページを参考にしてください。
4-3. クローラの実行
システム > スケジューラ
と移動し、4-2で作成したジョブを開きます。
その画面から、「今すぐ開始」をします。
状態が「実行中」から「有効」になるまで待ちます。
4-4. 検索のテスト
これでFessでGoogleDriveを横断検索することが出来るようになりました。