FessではZIP/RPM/DEBの3種類のパッケージを提供しています。
RPM/DEBパッケージはそれぞれRedHatとUbuntu向けのパッケージであり、それらに対応する標準のElasticsearchのRPM/DEBパッケージをインストールして利用します。ZIPパッケージはOS問わず、簡単に利用でき、Elasticsearchを組み込んだ形で配布しています。
ZIPパッケージはファイルを展開するだけで簡単にFess環境を作ることができますが、本番運用で利用する場合、組み込みElasticsearchでの稼働は推奨していません。RPM/DEBパッケージと同様、Fessとは別にElasticsearchを構築して利用する必要があります。
今回はWindows環境で本番運用を想定した構築について説明します。
Javaのインストール
他のOSと同様、Fessを起動するにはJavaが必要です。バージョンはJava 8u131以上をインストールしてください。
Javaをインストール後、以下の手順で環境変数を設定します。
- 「コントロールパネル」>「システムとセキュリティ」>「システム」>「システムの詳細設定」>「環境変数」を選択します。
- 「システム環境変数」の「新規」をクリックします。
- 「変数名」に「JAVA_HOME」、「変数値」にJDKファイルのアドレスを入力して「OK」を押します。JDKファイルは通常「
C:\Program File\java\jdk1.8.0_XXX
」(XXXはjavaのバージョンが入ります)にあります。 - 「システム環境変数」で「Path」を選択し、「編集」をクリックします。
- 「環境変数名の編集」で「新規」をクリックし、「
%JAVA_HOME%\bin
」と入力して「OK」をクリックします。
Elasticsearchのインストール
Elasticsearchのバージョンは使用するFessのバージョンによって変わります。適宜読み替えてインストールしてください。
使用するFessに対応するElasticsearchのバーションはFessのダウンロードページで確認することができます。今回はFess 12.3.5を使用するので、Elasticsearch 6.4.3をダウンロードします。
ElasticsearchのダウンロードページからWindows版をダウンロードし、展開します。今回はc:\opt\
に展開しておきます。
プラグインのインストール
コマンドプロンプトで以下のコマンドを入力し、必要なプラグインをインストールします。
インストールするElasticsearchのバージョンに対応しているプラグインをインストールしてください。
> c:\opt\elasticsearch\bin\elasticsearch-plugin.bat install org.codelibs:elasticsearch-analysis-fess:6.4.0
> c:\opt\elasticsearch\bin\elasticsearch-plugin.bat install org.codelibs:elasticsearch-analysis-extension:6.4.1
> c:\opt\elasticsearch\bin\elasticsearch-plugin.bat install org.codelibs:elasticsearch-configsync:6.4.0
> c:\opt\elasticsearch\bin\elasticsearch-plugin.bat install org.codelibs:elasticsearch-dataformat:6.4.0
> c:\opt\elasticsearch\bin\elasticsearch-plugin.bat install org.codelibs:elasticsearch-langfield:6.4.1
> c:\opt\elasticsearch\bin\elasticsearch-plugin.bat install org.codelibs:elasticsearch-minhash:6.4.0
> c:\opt\elasticsearch\bin\elasticsearch-plugin.bat install org.codelibs:elasticsearch-learning-to-rank:6.4.0
インストールするプラグインもElasticsearchのバージョンに依存するので、Fessのインストールガイドを参照して正しいバージョンをインストールしてください。
設定
Elasticsearch上でFessから配布された辞書ファイルを保存するため、 elasticsearch\config\elasticsearch.yml
に下記の設定を加えます。
configsync.config_path: c:/opt/elasticsearch/config/
Windowsサービスへの登録
ElasticsearchのサービスをWindowsサービスに登録します。管理者権限でコマンドプロンプトを起動し、以下のコマンドを実行します。
> c:\opt\elasticsearch\bin\elasticsearch-service.bat install
Fessのインストール
FessのZIPファイルはダウンロードページから入手することができます。
今回はFess12.3.5を使用します。こちらもc:\opt\
に展開しておきます。
設定
Elasticsearchにアクセスするためにfess\bin\fess.in.bat
を以下のように修正します。
set FESS_PARAMS=%FESS_PARAMS% -Dfess.es.http_address=http://localhost:9200
set FESS_PARAMS=%FESS_PARAMS% -Dfess.es.transport_addresses=localhost:9300
set FESS_PARAMS=%FESS_PARAMS% -Dfess.dictionary.path="c:/opt/elasticsearch/config/"
Elasticsearchと接続する際のポート番号を指定します。fess\app\WEB-INF\classes\fess_config.properties
を変更します。
elasticsearch.http.url=http://localhost:9200
Fessの検索画面、管理画面のデフォルトのポート番号は8080になっています。80番に変更する場合は c:\opt\fess\bin\fess.in.bat
の fess.port を変更します。
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.port=80
Windowsサービスへの登録
FessのサービスをWindowsサービスに登録します。管理者権限でコマンドプロンプトを起動し、以下のコマンドを実行します。
> c:\opt\fess\bin\service.bat install
サービスの起動
サービスを手動で起動する場合はElasticsearchサービスを先に起動し、その後Fessサービスを起動します。
以下のコマンドを実行してElasticsearchを起動します。
> c:\opt\elasticsearch\bin\elasticsearch-service.bat start
Fessを起動します。
> c:\opt\fess\bin\service.bat start
サービスの自動起動設定
Windows起動時にサービスを自動起動する場合は以下のように設定します。
- 「コントロールパネル」>「システムとセキュリティ」>「管理ツール」>「サービス」を開きます。
- サービス一覧から「elasticsearch 6.4.2 (elasticsearch-service-x64)」のプロパティを開き「スタートアップの種類」を「自動」に設定して「OK」をクリックします。
- サービス一覧から「Fess(fess-service-x64)」のプロパティを開き、「スタートアップの種類」を「自動(遅延開始)」に設定して「OK」をクリックします。
- キーボードの「Windows」キーを押しながら「R」キーを押して「ファイル名を指定して実行」を表示します。「regedit」を入力後、「OK」をクリックしてレジストリエディタを開きます。
- 「
コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\fess-service-x64\DependOnService
」の値に「elasticsearch-service-x64」を追加して「OK」をクリックします。 - 追加すると、Fessサービスのプロパティの依存関係にelasticsearch-service-x64 が表示されます。
サービスの停止
サービスを停止する場合、起動時とは逆に先にFessサービスを停止、その後Elasticsearchサービスを停止します。
以下のコマンドを実行してFessを停止します。
> c:\opt\fess\bin\service.bat stop
Elasticsearchを停止します。
> c:\opt\elasticsearch\bin\elasticsearch-service.bat stop
* * *
今回は本番運用を想定したWindows環境でのFessの構築方法をご紹介しました。Windows環境でFessを構築する際は参考にしてみてください。
著者紹介
菅谷 信介 (Shinsuke Sugaya)
Apache PredictionIOにて、コミッター兼PMCとして活動。また、自身でもCodeLibs Projectを立ち上げ、オープンソースの全文検索サーバFessなどの開発に従事。