Fess は、Google の検索サイトに似たインターフェイスを社内に簡単に提供できる。HTML、Word、Excel、zipファイル、画像などの数多くのフォーマットに対応している。Fessはバックエンドの全文検索エンジンとして OpenSearch あるいは Elasticsearch を利用可能となっている。
OpenSearch のインストール
OpenSearch と Fess をインストールし、全文検索サーバーを構築する。
OpenJDK のインストール
Fess の公式サイトで確認できる最新の安定板で使用しているOpenJDK のバージョン21を使用する。
dnf install -y java-21-openjdk
java --version複数のJavaがインストールされている場合は alternatives コマンドで切り替える。
alternatives --config java
There are 3 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 /usr/lib/jvm/java-25-openjdk/bin/java
+ 2 java-21-openjdk.x86_64 (/usr/lib/jvm/java-21-openjdk-21.0.10.0.7-1.el9.alma.1.x86_64/bin/java)
* 3 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.18.0.8-1.el9.alma.1.x86_64/bin/java)
Enter to keep the current selection[+], or type selection number:OpenSearch のリポジトリを設定
リポジトリを設定する。今回はFess のバージョン15を入れるため、Opensearch のバージョン3.5を入れる。
curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repoリポジトリの内容は以下の通り。手動でopensearch-3.x.repoを作成して保存しても良い。
[opensearch-2.x]
name=OpenSearch 2.x
baseurl=https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/yum
enabled=1
repo_gpgcheck=1
gpgcheck=1
gpgkey=https://artifacts.opensearch.org/publickeys/opensearch.pgp
autorefresh=1
type=rpm-md入手可能なOpenSearchのパッケージを確認する。
dnf list opensearch -y --showduplicates | grep x86_64OpenSearch のインストール
OpenSearch は管理者用のパスワードを環境変数に設定した状態でインストールする。
export OPENSEARCH_INITIAL_ADMIN_PASSWORD='$tr0ngP@$$w0rd'
dnf install -y opensearch-2.15.0YAML ファイルの記述
/etc/opensearch/opensearch.ymlを編集して以下の箇所を設定する。
cluster.name: cl01
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node
configsync.config_path: /var/lib/opensearch/data/config/
plugins.security.disabled: trueまた、プラグインをopensearchのバージョンに合わせてインストールする。
cd /usr/share/opensearch/bin/
./opensearch-plugin install --batch org.codelibs.opensearch:opensearch-analysis-fess:2.15.0
./opensearch-plugin install --batch org.codelibs.opensearch:opensearch-analysis-extension:2.15.0
./opensearch-plugin install --batch org.codelibs.opensearch:opensearch-minhash:2.15.0
./opensearch-plugin install --batch org.codelibs.opensearch:opensearch-configsync:2.15.0サービスを起動する。
systemctl start opensearch
systemctl enable opensearchOpenSearchのヒープ調整
Java仮想マシンのヒープメモリサイズを設定する。ヒープサイズを設定することにより、アプリが使用するメモリの大きさが固定され、OSのスワップが起こりにくくなる。
ヒープサイズの大きさは物理メモリのおよそ50%程度に設定することが推奨されているが、8GB程度だと実際には3GBに設定した方が安定すると言われている。-Xms3gは初期サイズ、-Xmx3gは最大ヒープサイズの設定。
vi /usr/share/fess/app/elasticsearch/config/jvm.options-Xms3g
-Xmx3gfessインストール
公式ページから最新バージョンを確認。
rpmパッケージをダウンロードして配置する。
wget https://github.com/codelibs/fess/releases/download/fess-15.5.0/fess-15.5.0.rpmrpmパッケージをインストールする。
dnf install fess-15.5.0.rpmFessの設定
Fess の設定ファイル /etc/sysconfig/fess を編集する。FESS_DICTIONARY_PATH に、openserach.ymlファイルで指定した configsync.config_path に設定したディレクトリを記述する。 FESS_PORT に指定している8080は Fess の管理画面にアクセスする際のポート番号。SEARCH_ENGINE_HTTP_URLで OpenSearch サーバーのURLを記載する。
################################
# Fess
################################
# Fess Path
FESS_TEMP_PATH=/var/tmp/fess
FESS_LOG_PATH=/var/log/fess
FESS_CONF_PATH=/etc/fess
FESS_VAR_PATH=/var/lib/fess
FESS_DICTIONARY_PATH=/var/lib/opensearch/config/
# Port
FESS_PORT=8080
# Heap Memory
FESS_HEAP_SIZE=512m
# Elasticsearch Path
SEARCH_ENGINE_HOME=/usr/share/opensearch/
# Elasticsearch URL
SEARCH_ENGINE_HTTP_URL=http://localhost:9200次に、Fess の設定ファイル /etc/fess/fess_config.properties を編集する。設定ファイル内のsearch_engine.http.urlにOpenSearchサーバーのURLを指定する。ポートは9200を指定する。
search_engine.typeはopensearchを指定する。
# Search Engine
search_engine.type=opensearch
search_engine.http.url=http://localhost:9200
.../usr/share/fess/bin/fess.in.sh を編集して以下の設定を追加あるいは変更する。
# External opensearch cluster
SEARCH_ENGINE_HTTP_URL=http://localhost:9200
FESS_DICTIONARY_PATH=/var/lib/opensearch/config/Fessのサービスを再起動する。
systemctl statt fess
systemctl enable fessこれで、ブラウザから8080番ポートで接続すると管理画面が表示される。
管理画面の初期ユーザー/パスワードはadmin/adminです。

ログイン後の設定については別の記事に記載します。