Edited at

FessでGoogle Driveを高速に横断検索する

More than 1 year has passed since last update.

この記事では、全文検索サーバー Fessを利用してGoogleDrive内のファイルを横断検索する方法を紹介します。

これはFess上で実際に検索を行っている画面のスクリーンショットです。


導入手順

FessでGoogleDriveを横断検索するための手順を説明します。

導入の流れは次のようになります。


  1. プラグイン追加

  2. Fessの起動

  3. 認証設定

  4. クローラの設定・実行


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を横断検索することが出来るようになりました。