Fessではオブジェクトストレージサーバ「MinIO」と連携することで、Fess上でドキュメント管理をすることができます。これは、ドキュメントの検索に加えて、検索対象のドキュメント自体を管理したいという要望に応えたものです。MinIOはAmazon S3と互換性があり、GNU AGPL v3ライセンスの下で自由に利用することができます。
今回はFessとMinIOを連携して、MinIO上に保存したファイルをクロールする方法を解説します。
FessとMinIOの起動
以降の解説では、docker-fessで用意した環境で、Fess 14.3、Elasticsearch 8、MinIOを利用します。
まずは以下の起動ファイルをダウンロードしてください。
ダウンロード後、以下のコマンドを実行して、Fess、Elasticsearch、MinIOを起動します。
$ cd [起動ファイルを保存したフォルダ]
$ docker compose -f compose.yaml -f compose-elasticsearch8.yaml -f compose-minio.yaml up -d
MinIOサーバの設定情報
MinIOの認証情報は、compose-minio.yamlに記載されています。Fess側からMinIOにアクセスするための情報もcompose-minio.yamlで指定しています。 MinIOの情報は、Fessの管理画面で確認することができます。 管理画面の左メニュー「システム」-「全般」をクリックで表示しましょう。
compose-minio.yaml を使わず、Fessと連携したいMinIOサーバが別にある場合、上記の「全般」の設定画面で以下の情報を設定してください。各項目の説明は以下になります。
ストレージ画面
MinIOと連携すると、FessでMinIO内のファイルを管理することができます。
管理画面の左メニューから「システム」-「ストレージ」をクリックして、「ストレージ」画面を表示すると、「全般」で指定したバケットの内容が表示されます。初回起動時は何も保存されていないので、何も表示されません。すでに保存済みのファイルやフォルダがあればそれらが表示されます。
フォルダは仮想的なものなので、フォルダ内にファイルが存在しない場合は、自動的になくなります。
アップロード
画面右上の「アップロード」ボタンをクリックすると、ファイルのアップロード画面が表示されます。 ファイルを指定して「アップロード」ボタンをクリックすると、表示していたフォルダ内にファイルがアップロードされます。
ダウンロード
ダウンロードしたいファイルの行に表示されている「ダウンロード」ボタンをクリックします。
ファイルの削除
削除したいファイルの行に表示されている「削除」ボタンをクリックすると、確認ダイアログが表示されるので、確認の上「削除」ボタンをクリックして削除します。
タグ
タグを設定したいファイルの行に表示されている「タグ」ボタンをクリックすると、タグの設定画面が表示されます。「タグキー」と「タグ値」を入力後、「更新」ボタンをクリックすると保存されます。
クロールの設定
Fessと連携したMinIOのクロールはファイルシステム設定で設定します。管理画面の左メニューから「クローラー」-「ファイルシステム」をクリックして、以下の項目を入力します。
storage://バケット名/
client.endpoint=ストレージサーバのエンドポイントURL
client.accessKey=ストレージサーバのアクセスキー
client.secretKey=ストレージサーバのシークレットキー
今回は compose-minio.yaml を指定して起動したので、以下のように値を入力しました。
クロールの実行
クロール設定ができたらクロールを実行してみましょう。
管理画面の左メニューから「システム」→「スケジューラ」で「Default Crawler」のジョブを開きます。「今すぐ開始」をクリックしてクロールを開始し、ジョブの状態が「実行中」から「有効」になるまで待ちます。
検索
クロール完了後、検索画面にアクセスして検索してみましょう。検索結果として、ストレージ内のファイルが表示されます。
* * *
今回はDockerを利用して、FessとMinIOを連携した環境を簡単に起動する方法を紹介しました。また、Fess上でファイル管理を行うことができ、それらをクロールおよび検索できることもおわかりいただけたのではないかと思います。Fessを利用する際に、ドキュメント管理もしたい場合は、ぜひ利用してみてください。