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をインストール後、以下の手順で環境変数を設定します。

  1. 「コントロールパネル」>「システムとセキュリティ」>「システム」>「システムの詳細設定」>「環境変数」を選択します。
  2. 「システム環境変数」の「新規」をクリックします。
  3. 「変数名」に「JAVA_HOME」、「変数値」にJDKファイルのアドレスを入力して「OK」を押します。JDKファイルは通常「C:\Program File\java\jdk1.8.0_XXX」(XXXはjavaのバージョンが入ります)にあります。
  4. 「システム環境変数」で「Path」を選択し、「編集」をクリックします。
  5. 「環境変数名の編集」で「新規」をクリックし、「%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起動時にサービスを自動起動する場合は以下のように設定します。

  1. 「コントロールパネル」>「システムとセキュリティ」>「管理ツール」>「サービス」を開きます。
  2. サービス一覧から「elasticsearch 6.4.2 (elasticsearch-service-x64)」のプロパティを開き「スタートアップの種類」を「自動」に設定して「OK」をクリックします。
  3. サービス一覧から「Fess(fess-service-x64)」のプロパティを開き、「スタートアップの種類」を「自動(遅延開始)」に設定して「OK」をクリックします。
  4. キーボードの「Windows」キーを押しながら「R」キーを押して「ファイル名を指定して実行」を表示します。「regedit」を入力後、「OK」をクリックしてレジストリエディタを開きます。
  5. コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\fess-service-x64\DependOnService」の値に「elasticsearch-service-x64」を追加して「OK」をクリックします。
  6. 追加すると、Fessサービスのプロパティの依存関係にelasticsearch-service-x64 が表示されます。
  7. サービスの停止

    サービスを停止する場合、起動時とは逆に先に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などの開発に従事。