Help us understand the problem. What is going on with this article?

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

deka0106
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away