近年、多くの企業がクラウドストレージを利用してファイル管理を行っています。「Box」は、セキュリティや共有機能があり、多数の企業で活用されています。しかし、ファイルが増えるにつれて必要な情報を迅速に探し出すことが難しくなるケースも多いでしょう。

本稿では、オープンソースの全文検索サーバ「Fess」を活用して、Box内のファイルをクロールし、高速で効率的な全文検索を実現する方法について解説します。

Boxでの認証設定

アプリの作成

FessからBox内のファイルにアクセスするため、まずBoxで認証用アプリを作成します。

開発者コンソールにアクセスし、アプリタイプの選択で「カスタムアプリ」をクリックしてください。すでに他のアプリが登録されている場合はアプリタイプの選択が表示されないので、「Platformアプリの作成」をクリックしてから「カスタムアプリ」を選択してください。

カスタムアプリ作成画面が表示されるので「アプリ名」と「目的」を入力して「次へ」をクリックします。「アプリ名」と「目的」の内容は任意で構いません。

認証方法で「サーバー認証(JWT使用)」を選択して「アプリの作成」をクリックします。

アプリが作成されると設定画面が表示されるので、「構成」タブを選択後、以下を実施してください。

  • 「アクセスレベル」は「アプリ+Enterpriseアクセス」を選択する。
  • 「アプリケーションスコープ」で以下にチェックを入れる。
    • コンテンツ操作
      • Boxに格納されている全てのファイルとフォルダへの書き込み
    • 管理操作
      • ユーザーを管理する
      • グループを管理する
      • Enterpriseのプロパティを管理する
  • 「高度な機能」で以下にチェックを入れる。
    • as-userヘッダーを使用してAPIコールを行う
    • ユーザーアクセストークンを生成する
  • 「公開キーの追加と管理」で「公開/秘密キーペアを生成」をクリックする。

キーが生成されると公開/秘密キーの値が保存されたファイルのダウンロードが始まります。クロール設定で認証設定する際に必要な情報なので失くさないように保存してください。

全ての設定が完了したら、画面右上の「変更を保存」をクリックしてください。

次に作成したアプリの承認リクエストを送信します。「承認」タブをクリックし、「確認して送信」ボタンをクリックしてください。

アプリ承認の確認画面が表示されるので、アプリの説明を入力して「送信」ボタンをクリックします。アプリの説明は任意で構いません。

アプリの承認

管理コンソールにアクセスして、左メニュー「統合」>上部タブの「Platformアプリマネージャ」をクリックします。作成したアプリの行をマウスオーバーすると「...」が表示されるので、「…」ボタンをクリックして、「アプリを承認」をクリックしてください。

アプリの詳細情報が表示されるので、内容を確認して「承認」をクリックしてください。

承認後、「承認ステータス」が「承認済み」、「有効化ステータス」が「有効」になっていることを確認してください。

Fessのクロール設定

今回は、Fess 14.18.0を利用して、手順を説明します。

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

クロール設定を作成する前に、クロール時に使用するプラグインをインストールします。Fessの管理画面にログインして「システム」>「プラグイン」>「インストール」をクリックします。 「リモートタブ」で「fess-ds-box-14.18.0」を選択して「インストール」をクリックしてください。

インストール後、プラグイン一覧画面を表示して、fess-ds-boxが登録されていることを確認してください。

クロールの設定

管理画面の「クローラー」>「データストア」>「新規作成」をクリックして以下を入力します。

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

名前には任意のクロール設定の名前を入力し、ハンドラ名は「BoxDataStore」を選択します。

パラメータは次のように記述します。設定する値は、「公開/秘密キーペアを生成」をクリックした際にダウンロードされたJSONファイルに記載されています。その値を指定してください。

client_id=hdf*****************************
client_secret=kMN**************************
public_key_id=4t******
private_key=-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIIFDj...=\n-----END ENCRYPTED PRIVATE KEY-----\n
passphrase=7ba*****************************
enterprise_id=19*******

スクリプトは以下で設定します。

url=file.url
title=file.name
content=file.contents
mimetype=file.mimetype
filetype=file.filetype
filename=file.name
content_length=file.size
created=file.created_at
last_modified=file.modified_at

クロールの実行

クロール設定の登録後、「システム」>「スケジューラ」>「Default Crawler」から「今すぐ開始」をクリックします。

クロールが完了したら、検索画面にアクセスして検索してみましょう。Boxに保存したファイルが検索できていれば成功です。

* * *

本稿では、Fessを利用して、Box内のファイルをクロールし、高速な全文検索環境を構築する方法をご紹介しました。FessとBoxを連携させることで、社内の膨大なファイルから必要な情報をすばやく検索できるようになり、情報活用の効率化や業務の生産性向上が期待できます。Boxを活用している環境で検索性に課題を感じている場合は、ぜひFessによる全文検索をお試しください。