今回は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」を選択して、「有効にする」をクリックします。
次に、サービスアカウントキーを作成します。ダッシュボードの左欄にある「認証情報」を開き、「認証情報を作成」クリックして「サービスアカウント キー」を選択します。
「サービスアカウント」のプルダウンから「新しいサービスアカウント」を選択します。 サービスアカウント名(任意)を入力し、キータイプに「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などの開発に従事。