今回はFess 13.4.2を使用し、Google Drive内のファイルを検索する方法を紹介します。FessのZIPファイルはダウンロードページから入手してください。

プラグインのインストール

Google Drive内のファイルをクロールするためには、プラグインをFessに追加する必要があります。

プラグインは管理画面から追加します。Fessを起動して、管理画面にログイン後、「システム」>「プラグイン」>「インストール」をクリックします。リモートタブで「fess-ds-gsuite-13.4.0」を選択して、「インストール」をクリックするとプラグインがインストールされます。

プラグインのインストール

Google Drive APIの設定

Google Driveのコンテンツをクロールするためには、Google Drive APIを有効にして、認証情報を取得する必要があります。

まずはプロジェクトの作成とAPIの有効化を行います。https://console.developers.google.com/ にアクセスして、新しいプロジェクトを作成してください。

ダッシュボードの左欄から「ライブラリ」をクリックし、検索窓に「Google Drive API」を入力してAPIを検索します。 検索結果から「Google Drive API」を選択して、「有効にする」をクリックします。

GoogleDriveAPIの有効化

次に、サービスアカウントキーを作成します。ダッシュボードの左欄にある「認証情報」を開き、「認証情報を作成」クリックして「サービスアカウント キー」を選択します。

サービスアカウントキーを選択

「サービスアカウント」のプルダウンから「新しいサービスアカウント」を選択します。 サービスアカウント名(任意)を入力し、キータイプに「JSON」を指定して「作成」ボタンをクリックします。

サービスアカウントキーの作成

以下のメッセージが表示されますが、今回は「役割なしで作成」を選択して進めます。

「役割なしで作成」をクリック

サービスアカウントキーの作成が終わると認証情報を含むJSONがダウンロードされます。ダウンロードしたファイルはクロール先の共有設定やクロール設定時に利用します。

最後に、Google Driveを開いて、検索対象にしたいフォルダをサービスアカウントに共有します。クロール対象のフォルダを右クリックして「共有」をクリックしたら、先程ダウンロードしたJSON内の”client_email”の値を入力します。 共有設定の通知が不要な場合は通知のチェックボックスを外して、「OK」ボタンをクリックします。

検索対象への共有設定

クローラの設定と実行

Google Driveをクロールするための設定をします。

クローラの設定

Fessの管理画面にログインし、「クローラ」>「データストア」>「新規作成」を開き、クロール設定を作成します。設定が必要な項目は以下の4つです。

  • 名前
  • ハンドラ
  • パラメータ
  • スクリプト

「名前」は任意の文字列を入力してください。「ハンドラ」は「GoogleDriveDataStore」を選択してください。

「パラメータ」は以下のように入力してください。

private_key=-----BEGIN PRIVATE KEY-----\nMIIEv ... =\n-----END PRIVATE KEY-----\n
private_key_id=46812 ... b33f8
client_email=****@****.iam.gserviceaccount.com
default_permissions={role}guest

「private_key」,「private_key_id」および「client_email」は「Google Drive APIの設定」でダウンロードされたJSONの内容に対応しています。

「スクリプト」は以下のように入力してください。

title=file.name
content=file.description+"\n"+file.contents
mimetype=file.mimetype
created=file.created_time
last_modified=file.modified_time
url=file.url
thumbnail=file.thumbnail_link
content_length=file.size
filetype=file.filetype
role=file.roles
filename=file.name

取得できる値のキーと値の説明は以下の通りです。「File」は、Google Drive内の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のサムネイルを取得するリンク
file.size Fileのサイズ
file.filetype Fileの種類
file.roles Fileの権限情報

クロールの実行

クロール設定登録後、「システム」>「スケジューラ」>「Default Crawler」から「今すぐ開始」をクリックします。クロールが完了したら、検索画面にアクセスして検索してみましょう。指定したコンテンツが検索できていれば成功です。

検索結果画面

* * *

今回はFessを利用して、Google Drive内のファイルを検索対象にする方法を紹介しました。Google Drive内のファイル検索をする際は参考にしてみてください。

著者紹介

菅谷 信介 (Shinsuke Sugaya)

Apache PredictionIOにて、コミッター兼PMCとして活動。また、自身でもCodeLibs Projectを立ち上げ、オープンソースの全文検索サーバFessなどの開発に従事。