今まで、Fessの利用環境を構築するには「Elasticsearch」をインストールして構築する必要がありました。Fess 13.11からはマネージドなElasticsearchも利用できるようになり、Fessをクラウド環境で利用しやすくなりました。
今回は、Elastic社が提供しているサービスの中から、マネージドのElasticsearchやKibanaをAWS、Google Cloud、Microsoft Azure上で利用することができる「Elastic Cloud」でのFessの利用方法について説明します。
Elastic CloudからElasticsearch Serviceを利用する
Elastic Cloudのアカウントを作成すると、Elastic Cloudのサイトからログインして利用できるようになります。無料トライアルも提供されているので、マネージドのElasticsearchを手軽に試すことも可能です。
ログインしてElastic Cloudを利用しようとすると、以下のような画面が表示されます。
Fessでは、Elasticsearchを利用するだけなので「Enterprise Search」を選択して、「Create deployment」ボタンをクリックしてください。
以下のように、「Elasticsearch Service」にアクセスするためのユーザー名とパスワードが表示されます。
「Download」ボタンをクリックすると、Elasticsearchのクラスタの作成が始まります。ダウンロードしたCSVファイルには、ユーザー名とパスワードが記載されています。
しばらく待ち、Elasticsearchが利用可能な状態になると、以下の画面が表示されます。
Elasticsearchプラグインのインストール
次に、 Elasticsearchのプラグインをインストールします。 Elasticsearch Serviceでは、画面上でプラグインを選択してインストールすることができます。
左メニューの「Edit」をクリックしてクラスタの編集画面が表示されたら、「Settings and Plugins」のリンクをクリックしてください。
Fessでは以下のプラグインを利用するので、それらにチェックを入れ、「Back」ボタンをクリックし、編集画面に戻ります。
- analysis-kuromoji
- analysis-nori
- analysis-smartcn
「Save」ボタンをクリックすると確認画面が表示されるので、表示されたプラグイン名を確認して「Confirm」ボタンをクリックします。
プラグインのインストールが始まり、各ノードが再起動されるので、適用されるまで少し待ちます。
ここまでがElastic Cloudの設定です。その他の項目については、ご利用の環境に合わせて設定してください。
Fessの起動
マネージドのElasticsearchを利用する場合、FessもDockerが利用できるようなマネージドの環境上で利用することが考えられます。Dockerで実行するには、以下のように「docker run」を実行するとFessを起動できます。
docker run -d -p 8080:8080 \
-e ES_HTTP_URL=<ElasticsearchのエンドポイントURL> \
-e ES_TYPE=cloud \
-e ES_USERNAME=elastic \
-e ES_PASSWORD=<elasticsearchのパスワード>\
ghcr.io/codelibs/fess:13.12
エンドポイントURLは、前掲のデプロイ後の画面(「enterprise-Search-deployment」画面)の「Applications」でElasticsearchの「Copy endpoint」をクリックすると取得できます。Elasticsearchのパスワードは、Elasticsearchの作成時にダウンロードしたCSVファイルの情報を確認してください。
ローカル環境で「docker run」を実行した場合、「http://localhost:8080」にアクセスしてFessの管理画面にログインしてください。ダッシュボードでは Elastic Cloudのノードが表示されています。
Docker以外での利用
ZIPパッケージのFessでElastic Cloudを利用したい場合は、app/WEB-INF/classes/fess_config.propertiesを以下のように編集します。
elasticsearch.type=cloud
elasticsearch.http.url=<ElasticsearchのエンドポイントURL>
elasticsearch.username=elastic
elasticsearch.password=<Elasticsearchのパスワード>
Fessでの制限事項
Elastic Cloudでは、Fessがユーザー辞書管理で利用するプラグインをインストールできません。そのため、Fessの管理画面上では辞書編集機能が無効になっています。ユーザー辞書を管理したい場合は、Fessのインデックスマッピングを編集する必要があります。
* * *
今回はElastic Cloudに接続して、Fessを起動する方法をご紹介しました。マネージドのElasticsearchを利用することでFess環境の運用が楽になるので、新たな選択肢として検討してみてください。
著者紹介
菅谷 信介 (Shinsuke Sugaya)
Apache PredictionIOにて、コミッター兼PMCとして活動。また、自身でもCodeLibs Projectを立ち上げ、オープンソースの全文検索サーバFessなどの開発に従事。
本連載の内容やFessに関するご質問は公式フォーラムまで。