Fessサーバ 構築してみた!
はじめに
Fessサーバを構築する方法をVirtualBox、Dockerを用いて試しました。
今回は構築方法を試しただけですが、同じ方法でサーバを立てて、運用することは可能です。
Fessとは?
オープンソースのエンタープライズ検索サーバーです。Fessは、強力で柔軟な検索機能を提供し、企業内のドキュメント、ウェブサイト、データベースなどから効率的に情報を検索するためのツールとして使用されます。
ライセンスについて
Fessを用いた検索サーバには以下のソフトウェアが必要
Fess 14.14.0
- Apache 2.0 ライセンス(商用利用無料)
OpenSearch 2.14.0 - Apache 2.0 ライセンス(商用利用無料)
jDK17 (temurin) - temurinがビルドしたものであれば商用利用無料
- openjdkのコードは公開されているので、自身でビルドしたjdkを使用する場合も商用利用無料
OpenSearchとは?
検索、分析、可視化のためのオープンソースの分散型検索および分析エンジンです。Amazon Web Services (AWS)によってフォークされ、ElasticsearchおよびKibanaのオープンソース版から派生したプロジェクトです。OpenSearchは、エンタープライズレベルの検索およびログ解析、アプリケーションモニタリング、リアルタイムのデータ分析などに使用されます。
FessはOpenSearchを検索エンジンとして使用し、検索を行います。
Fessサーバ推奨マシンスペックについて
Fessサーバ推奨マシンスペックは以下のものになります。
- CPU 2コア(4コア以上を推奨)
- メモリ 8GB(16GB以上を推奨)
- ハードディスク 200GB(データ容量に応じて、500GB以上を推奨)
インストール&構築方法
Fessサーバの構築にはそのままサーバにFessやOpenSearch、JDKをインストールして構築する場合とDockerでコンテナを立てて構築する方法と2種類あります。
- そのままサーバにFess構築する方法に関してはこちらを参照
- Dockerを用いた構築方法に関してはこちらを参照
Fess構築
ここでは、コンテナなどを使わずサーバにFess構築に必要なソフトウェアをインストールして構築する方法を記述します。
仮想マシン構築
今回はVirtualBox上にAlamaLinuxの仮想マシンを作成し、その上にFessサーバを構築します。
AlamaLinuxとは、オープンソースのLinuxディストリビューションであり、Red Hat Enterprise Linux(RHEL)に互換性があります。CentOSプロジェクトがCentOS Streamに移行し、従来のCentOSが終息することが発表された後に、代替として開発されました。
AlamaLinuxの選定理由
- RHELの派生のディストリビューションであること
- 商用利用が無料で可能であること
ISOインストール
AlamaLinux9.4のISOを以下のサイトからインストールします。
プラットフォームを選択し、該当のISOをダウンロードします。
今回はDVD ISO(約10GB)をインストールしますが、状況に合わせてインストールしてください
Minimal ISOはGUI環境はありません。サーバ用途であればMinimal ISOでよいと思います。
ISO | 詳細 |
---|---|
DVD ISO | ネットワーク環境がない場合でもセットアップができるが容量が大きい |
Boot ISO | 最も軽量でネットワークが接続できる環境でセットアップできる場合に使用 |
Minimal ISO | 必要最小限のパッケージを含む |
仮想マシン設定
Virtual BoxでAlmaLinuxのマシンの起動設定をしていきます。
新規作成から仮想マシン名と先ほどダウンロードしたISOを選択します。
ユーザ名とパスワードを設定します。
起動した仮想マシンの画面を大きくする設定を後で入れる場合はGuest Addtionsのチェックを入れて該当のISOを選択します。
メモリとCPUの設定を行います。今回はメモリ8GB、CPU4コアで設定します。
ハードディスクの設定を行います。今回は64GBで設定します。
設定内容に間違いがなければ完了ボタンをクリックし設定を完了させます。
ネットワークをブリッジアダプターに設定します。ホスト端末のNICを使用することで、ホスト端末と仮想マシンが同ネットワーク内に存在するようにできます。(他の端末からはホスト端末と仮想マシンが別の端末として見える)
AlmaLinux設定
それでは起動しましょう!作成した仮想マシンを選択し、右クリック 起動>通常起動で仮想マシンを起動させます。
起動画面から「Install AlmaLinux Linux9.4」を選択します。
AlmaLinuxの設定画面が起動するので、初期設定を行っていきます。
はじめに使用する言語を選択します。
次にインストール先とユーザの設定を行います。⚠️が付いている項目は設定する必要があります。
インストール概要画面からシステムのインストール先を選択します。
構成をカスタマイズしないならば、自動構成が選択されていることを確認して完了ボタンをクリックします。
インストール概要画面でインストール先の⚠️が消えていることを確認します。
インストール概要画面からユーザ設定のrootパスワードを選択します。
rootアカウントのパスワードを設定し、rootアカウントをロックにチェックを入れ、セキュリティ上の都合でrootがアクセス及び操作できないように設定します。
インストール概要画面からユーザ設定のユーザの作成を選択します。
任意のユーザを作成し、このユーザを管理者にするにチェックを入れて管理者権限を付与します。
設定が完了したら、インストールの開始を選択します。
インストールが完了したら、再起動させます。
再起動後、ユーザを作成し、パスワードを入力します。
作成したユーザでログインできることを確認できました!
仮想マシンの画面が小さく、大きくしたい場合は起動した仮想マシンの画面を大きくするを参照してください!
Fessサーバ構築
仮想マシンが起動したので、Fessサーバ構築を構築していきます。
ソフトウェアのインストール
それでは構築に必要なソフトウェア類をインストールします。
openjdk,opensearch,fessのインストール及び設定を行います。
# システムのパッケージを更新
sudo dnf -y update
OpenJDK17のインストール
Fessを動かすためにjdkが必要なので以下のサイトからjava17をインストールします。
以下のコマンドでcpuアーキテクチャ確認を確認することができます。
# cpuアーキテクチャ確認
$ uname -m
tar.gzファイルをインストール後、/usr/bin/javaにファイルを移動させて展開します。
# ホームディレクトリにダウンロードしたファイルを配置
sudo mkdir /usr/bin/java
sudo mv OpenJDK17U-jdk_x64_linux_hotspot_17.0.11_9.tar.gz /usr/bin/java
cd /usr/bin/java
sudo tar -zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.11_9.tar.gz
環境パスにJAVA_HOMEを設定します。
# 環境パスに設定
echo "export JAVA_HOME=/usr/bin/java/jdk-17.0.11+9" >> ~/.bashrc"
echo "export PATH=\$PATH:\$JAVE_HOME/bin" >> ~/.bashrc"
# 反映
source ~/.bashrc
# 確認
java -version
java -version実行後が以下のようになれば、環境パスの設定が反映されています。
OpenSearchのインストール
以下のダウンロードページからopensearch2.14.0(tar.gzファイル)をダウンロードして、展開・設定を行います。
OpenSearchが実行できるようにするため、OS側で「vm.max_map_count」の値を調整する必要があります。(デフォルトで65530)
vm.max_map_countの値を262144 に変更します。
# 確認
cat /proc/sys/vm/max_map_count
# 多分、65530が出力されるため変更する
# viでvm.max_map_count=262144を追加
sudo vi /etc/sysctl.conf
# 設定を反映
sudo sysctl -p
tar.gzファイルをインストール後、/usr/bin/opensearchにファイルを移動させて展開します。
# ホームディレクトリにダウンロードしたファイルを配置
sudo mkdir /usr/bin/opensearch
sudo mv opensearch-2.14.0-linux-x64.tar.gz /usr/bin/opensearch
cd /usr/bin/opensearch
sudo tar -zxvf opensearch-2.14.0-linux-x64.tar.gz
環境パスにOPENSEARCH_HOMEを設定するのと、必要なプラグインをインストールします。
# 環境パスに設定
echo "export OPENSEARCH_HOME=/usr/bin/opensearch/opensearch-2.14.0" >> ~/.bashrc"
echo "export PATH=\$PATH:\$OPENSEARCH_HOME/bin" >> ~/.bashrc"
# 反映
source ~/.bashrc
# プラグインの設定
$OPENSEARCH_HOME\bin\opensearch-plugin install org.codelibs.opensearch:opensearch-analysis-fess:2.14.0
$OPENSEARCH_HOME\bin\opensearch-plugin install org.codelibs.opensearch:opensearch-analysis-extension:2.14.0
$OPENSEARCH_HOME\bin\opensearch-plugin install org.codelibs.opensearch:opensearch-minhash:2.14.0
$OPENSEARCH_HOME\bin\opensearch-plugin install org.codelibs.opensearch:opensearch-configsync:2.14.0
opensearchの設定ファイルを編集し、設定を追加します。
sudo vi $OPENSEARCH_HOME/config/opensearch.yml
以下の内容をopensearchの設定ファイルに追加
configsync.config_path: /usr/bin/opensearch/opensearch-2.14.0/data/config/
plugins.security.disabled: true
Fessをインストールする
Fess14.14.0を以下のサイトからzipファイルをインストールし、セットアップします。
# ホームディレクトリにダウンロードしたファイルを配置
sudo mkdir /usr/bin/fess
# zipを展開
sudo unzip fess-14.14.0.zip -d /usr/bin/fess/
# 環境パスを設定
echo "export FESS_HOME=/usr/bin/fess/fess-14.14.0" >> ~/.bashrc"
echo "export PATH=\$PATH:\$FESS_HOME/bin" >> ~/.bashrc"
# 反映
source ~/.bashrc
OpenSearchとFessを接続させる設定をシェルに追加します。
sudo vi $FESS_HOME/bin/fess.in.sh
以下の内容を編集(以下の部分がコメントアウトされているのでそこを変更する)
SEARCH_ENGINE_HTTP_URL=http://localhost:9200
FESS_DICTIONARY_PATH=/usr/bin/opensearch/opensearch-2.14.0/data/config/
起動
それではFessサーバを起動させましょう!
はじめにOpenSearchを起動させ、その後にFessを起動させます。
# OpenSearchを起動
cd $OPENSEARCH_HOME
./bin/opensearch
起動させる前にFessのフォルダのパーミッションを変更します。(これをしないとlogとかが出せないってエラーが出る)
# パーミッション変更し、起動
cd $FESS_HOME
sudo chmod 744 logs/
sudo chmod 744 temp/
sudo chmod 744 app/WEB-INF/conf/
./bin/fess
仮想マシン内のブラウザからlocalhost:8080にアクセスします。起動できていることを確認できました!
ファイヤーウォールの設定
ーバを起動させることはできましたが、このままではアプリケーションが起動しているサーバ外からFessにアクセスすることはできません。
外部からFessにアクセスできるようにファイヤーウォールの設定を変更します。
ファイヤーウォール確認・有効化
はじめにファイヤーウォールが有効になっているか確認します。
ステータスがActive: active (running)となっていればファイアウォールが有効になっており、
Active: inactive (dead)となっている場合はファイアウォールが無効になっています。
sudo systemctl status firewalld
無効になっていた場合は以下のコマンドで有効にします。
sudo systemctl start firewalld
sudo systemctl enable firewalld
HTTPと8080番ポートを許可
Fessはデフォルトでは8080番ポートで起動しており、http通信でアクセスします。
今回は8080番ポートとhttp通信をファイヤーウォールで許可してもらうように設定を変更します。
まずは、現状許可されているポート、サービスを確認します。
# 許可されているサービスの確認
sudo firewall-cmd --list-services --zone=public --permanent
# 許可されているポートの確認
sudo firewall-cmd --list-ports --zone=public --permanent
HTTPと8080番ポートを許可するように変更
# 8080番を許可
sudo firewall-cmd --add-port=8080/tcp --zone=public --permanent
# httpを許可
sudo firewall-cmd --add-service=http --zone=public --permanent
# 反映
sudo firewall-cmd --reload
これで外部からアクセスできるようになりました。それではホスト端末からFessサーバにアクセスしてみましょう。
FessサーバのIPを指定して、アクセスします。
Linuxで自身のIPアドレスを確認する場合は以下のコマンドを実行します。
ip a
無事アクセスできました!
Fess設定
Fessサーバは構築すれば終わりではありません。検索対象のパス設定、検索条件のチューニングなどを行う必要があります。
検索対象のパス設定
- 検索対象をファイルサーバ、NAS、ローカルディレクトリなど設定する
ファイルクローラーの設定 - 定期的にジョブを実行し、検索対象のファイルの情報を取得する必要があります。
設定チューニング - チューニングしないとうまく検索されない、検索処理に負荷がかかりレスポンス速度が低下する
- 検索スピードを向上させるためにインデックスを適切に設定する
詳しい設定チューニングはドキュメントを読もう!
初期設定
ホーム画面のログインをクリックし、初期ユーザ名と初期パスワードはどちらともadminです。
それらを入力し、ログインします。
新しいパスワードを設定します。パスワードが更新されたらホーム画面に戻ります。
ファイルシステムの検索
Fessサーバ内のファイルシステムを検索対象とした検索の設定を行っていきます。
ユーザ【admin】から管理を選択します。
クローラー>ファイルシステムを選択します。新規作成ボタンをクリックし、検索対象のパスを追加します。
Fessサーバ内のファイルシステムを検索対象とします。
今回はhome/配下のものを検索対象に設定しました。
検索対象
- ファイル名: b.txt
- 内容: bbbbbbbbb
パスの項目にファイルパスを記載します。(例: file:/home/)
検索対象の設定が完了したら、作成ボタンをクリックします。
ファイルのクロールの画面で上記で作成した設定を選択します。
新しいジョブの作成をクリックし、ファイルクローラーのジョブの設定を行います。
設定後、作成をクリックします。今回はデフォルトのままで変更はしません。
ジョブスケジューラ画面で先ほど作成したジョブを確認し、選択します。
今すぐ開始をクリックし、ファイルクローラーのジョブを起動してファイルパスを探索させます。
実行中になっていれば起動しています。
検索画面に戻り検索窓から「bbbbbbbbb」で検索します。
検索結果に表示されました!
ファイル名をクリックすれば、ファイル内容の内容がブラウザで表示されます。
テキストファイルとpdfはブラウザ上で内容を表示することができます。
Fessサーバ外部のデータを検索対象とする
Fessは自サーバのファイルシステム以外にもNAS、FileServer、S3などを検索対象とすることができます。そういった場合の設定方法を仮想マシンをつかって試していきます。
以下のような構成でFessを使用されることを想定し、検証を行います。今回はClientをホスト端末とし、実際に構築するのはFess ServerとNASだけとします。検索対象がNASであろうが、File Serverであろうが設定はそこまで変わらないのでFile Serverを構築し、そこを検索対象とされる方はNAS部分を読み替えてもらえればと思います。
- Client ・・・ ホスト端末 or Virtual Box(os: ubuntu, Windows等)
- Fess Server ・・・ Virtual Box(os: AlmaLinux)
- NAS ・・・ NAS製品、Virtual Box(TrueNAS Scale等)
- File Server ・・・ Virtual Box(os: AlmaLinux, WindowsServer等)
今回はNASを検索対象とします。
NASを所持していない方は本記事のNAS構築を参考にVirtualBoxでNASを構築してください!所持されている方はそちらをご使用していただければと思います。
今回はExcelファイルを検索対象ファイルとして使用します。
以下のExcelファイルをNASに配置します。
Excelファイルの中身は以下のような顧客管理表のテンプレートになります。
23675_kokayku_kanri.xlsx
NASを検索対象とした検索
先ほどと同じくクローラー>ファイルシステムから検索対象のパスを設定します。
先ほど作成した設定内容を更新する形で設定を行います。
今回はNASを検索対象としたいので、smb://[IPアドレスorホスト名]/で検索対象を指定します。
(例:smb://192.168.10.16/test/)
設定できたら更新ボタンをクリックします。
先ほど作成したジョブを使用します。今すぐ開始でジョブを開始させます。
クローラーがどのファイルを見つけているか確認する方法
システム情報>クロール情報からクローラーが探索して見つけたファイルを確認します。
一番近いクロール情報を選択します。
クロール情報画面でセッションIDを選択します。
NASに配置したExcelファイルをクローラーが見つけたことを確認できました!
それでは検索画面に戻り、「顧客」というワードで検索します。検索できました!
Excel,PowerPointの場合はファイル名をクリックするとファイルがダウンロードされます。
Dockerを用いた構築方法
DockerからDocker Imageをインストールしコンテナを起動させるか、Docker Composeの起動ファイル(yamlファイル)をダウンロードし、コンテナを起動します。
前準備
OpenSearchがDocker コンテナーとして実行できるようにするため、OS側で「vm.max_map_count」の値を調整する必要があります。(デフォルトで65530)設定しなければ以下のように画面が起動しません。
このサイトを参考にプロセスが使用可能なメモリマップ領域の最大数を262144に設定します。(OSによって設定方法が異なります。)
Linuxの例
# 確認
sysctl vm.max_map_count
# 一時的にサイズを変更する
sudo sysctl -w vm.max_map_count=262144
# 永続化
# /etc/sysctl.confに以下の変更を入れる
vm.max_map_count=262144
# 設定を再読み込み
sudo sysctl -p
Windowsの例
# PowerShellかコマンドプロンプトにて実行
# wslを起動
wsl
# /etc/sysctl.confを編集 vm.max_map_count = 262144を追加
sudo vi /etc/sysctl.conf
# 反映
sudo sysctl -p
Fessのインストール&起動
以下のどちらかの方法で起動ファイルをダウンロードし、dockerコンテナを起動させます。
今回はFessとOpensearchのコンテナを起動します。
githubからダウンロードする場合
# githubのリポジトリからクローンする
git clone https://github.com/codelibs/docker-fess.git
cd docker-fess/compose
# 起動ファイルからコンテナを起動
docker compose -f compose.yaml -f compose-opensearch2.yaml up -d
curlコマンドでダウンロードする場合
# 適当なディレクトリを作成し、移動
mkdir fess
cd fess
# 起動ファイルをダウンロード
curl -o compose.yaml https://raw.githubusercontent.com/codelibs/docker-fess/master/compose/compose.yaml
curl -o compose-opensearch2.yaml https://raw.githubusercontent.com/codelibs/docker-fess/master/compose/compose-opensearch2.yaml
# コンテナを起動
docker compose -f compose.yaml -f compose-opensearch2.yaml up -d
docker-composeファイルの中身は以下のようになってます。
compose.yaml(fessサーバのコンテナ起動用)
services:
fess01:
image: ghcr.io/codelibs/fess:14.14.0
# build: ./playwright # use Playwright
container_name: fess01
environment:
- "SEARCH_ENGINE_HTTP_URL=http://es01:9200"
- "FESS_DICTIONARY_PATH=${FESS_DICTIONARY_PATH:-/usr/share/opensearch/config/dictionary/}"
# - "FESS_PLUGINS=fess-webapp-semantic-search:14.14.0 fess-ds-wikipedia:14.14.0"
ports:
- "8080:8080"
networks:
- esnet
depends_on:
- es01
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "5"
restart: unless-stopped
networks:
esnet:
driver: bridge
compose-opensearch2.yaml(opensearchサーバのコンテナ起動用)
services:
es01:
image: ghcr.io/codelibs/fess-opensearch:2.14.0
container_name: es01
environment:
- node.name=es01
- discovery.seed_hosts=es01
- cluster.initial_cluster_manager_nodes=es01
- cluster.name=fess-es
- bootstrap.memory_lock=true
- node.roles=cluster_manager,data,ingest,ml
- "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
- "DISABLE_INSTALL_DEMO_CONFIG=true"
- "DISABLE_SECURITY_PLUGIN=true"
- "FESS_DICTIONARY_PATH=/usr/share/opensearch/config/dictionary"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65535
hard: 65535
volumes:
- esdata01:/usr/share/opensearch/data
- esdictionary01:/usr/share/opensearch/config/dictionary
ports:
- 9200:9200
networks:
- esnet
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "5"
restart: unless-stopped
volumes:
esdata01:
driver: local
esdictionary01:
driver: local
以下が実際にコマンドを実行した際のコマンドラインになります。docker psコマンドで2つのコンテナが正常に起動されていることを確認します。
Fessコンテナはホストの8080ポートとバインドしているので、ホスト端末のブラウザでhttp://localhost:8080/にアクセスすると以下のようにFessの画面が表示されます!
Fessの停止
以下のコマンドでコンテナを停止、削除します。
# Fessコンテナとopensearchコンテナを停止させ、削除する
docker compose -f compose.yaml -f compose-opensearch2.yaml down
NAS構築
今回はVirtualBoxにTrueNAS Scaleの仮想マシンを作成し、NASを構築します。
TrueNAS Scaleとは?
TrueNAS SCALEは、TrueNAS CORE(以前はFreeNASとして知られていた)の基になるオープンソースのネットワークアタッチドストレージ(NAS)ソフトウェアで、特にLinuxベースのシステムです。TrueNAS SCALEは、TrueNASの機能をLinuxの柔軟性とスケーラビリティと組み合わせることを目的としています。その「SCALE」は「Scalable, Converged, Active-Active, Linux, and Easy」の頭文字を取っています。
OSSなので、企業でも無料で使用することができます。
仮想マシンの構築
今回検索対象とするNASをVirtualBoxを用いて構築していきます。
ISOインストール
ダウンロードサイトからTrueNAS SCALE 24.04.1.1のISOをインストールします。
仮想マシン起動設定
VirtualBoxで新規の仮想マシンを作成します。
名前と先ほどダウンロードしたISOを選択します。
仮想マシンのハードウェアの設定を行います。メモリ、CPU、ハードディスク容量を以下のように設定
設定内容を確認して問題なければ完了ボタンをクリックし、設定を完了させます。
ハードディスクの追加
TrueNAS Scaleではストレージが2つある必要があるので、設定から別のストレージを追加します。
ストレージの設定から適当なサイズのハードディスクを追加します。
TrueNAS Scaleの設定
仮想マシンを起動して、TrueNAS Scaleの設定を行います。
起動後以下の画面で「Start TrueNAS Scale Installation」を選択します。
1のInstall/Upgradeを選択します。
TrueNASをインストールするほうのストレージを選択します。
Yesを選択します。
1のAdministrative user (admin)を選択し管理ユーザーを作成します。
パスワードを入力します。
Yesを選択します。
OKを押します。
一度、マシンを停止させます。
ストレージデバイスのコントローラ:IDEからISOを除去します。
ISOを除去後、再度仮想マシンを起動します。
起動後以下の画面で「TrueNAS Scale GNU/Linux24.04.1.1」を選択します。
起動しているIPアドレスが表示されるので、ブラウザでそのIPアドレスにアクセスすればNASの管理コンソール画面に遷移できます。
コンソールに表示されているurlをブラウザで開きます。
例 http://192.168.10.16
ユーザ名にadminとパスワードは先ほど設定したものを入力します。
ログイン後、ストレージタブからCreate Poolで新規でプールを作成します。
プールの名前と暗号化方式を設定します。
テストのためストライプ構成で作成します。(本番環境ではレイド構成を組みましょう)
Create Poolでプールを作成します。
FessサーバからNAS間はSMB通信を行います。
DatasetsタブからSMBを有効する設定を入れます。
データセットの名前を入力し、Saveをクリックします。
Datasetsタブのホーム画面からRolesの部分のCreate SMB Shareをクリックします。
名前と対象のパスを選択します。
Savaすると以下のポップアップ画面が表示されるので、以下のようになっていることを確認して、Startをクリックします。
CredentialsタブのLocal UsersからAddボタンをクリックし、ユーザを追加します
ユーザ名、パスワード等を入力します。追加するユーザにSMB Shareの設定のときに指定したファイルパスの権限を付与します。
Datasetsの画面のPermissionsの部分にOwner,Groupが先ほど追加したユーザ名になっているか確認します。なっていれば設定完了です!なってない場合はEditで修正します。
起動した仮想マシンの画面を大きくする
起動した画面が小さく実際にGUIをつかって操作する場合は不便な場合があります。
そこで起動した仮想マシンの画面を大きくする方法を記載します。
画面上部のタブのデバイスからGuest Addtions CDイメージ挿入..を選択します。
以下のポップアップが出てくるので実行を選択します。コマンドラインで処理が実行されるので、処理が終わったら何かしらのキーを押してコマンドラインを閉じ、仮想マシンを再起動させます。
再起動後、設定画面から画面サイズを変更させます。これで画面サイズが大きくできるようになりました!
画面サイズが大きくできない場合は仮想マシンのビデオメモリのサイズが小さい場合があるので、
VirtualBoxの設定からビデオメモリのサイズを128MBに変更してあげましょう。
終わりに
Fessの構築自体は簡単に行えますが、検索対象データに適したチューニングに関しては試行錯誤が必要かと思います。
参考
公式ドキュメント
ドキュメント
github
公式サイト
オープンソース全文検索サーバー Fess
Fess関連
ドキュメント
Fess環境構築メモ - Qiita
Fessでエクセル設計書の中を検索しよう!~Fess基本編~
Temurin:Linuxのインストール手順|無料グループウェア GroupSession
Virtual Box関連
Chapter 6. Virtual Networking
Windows11に Oracle VM VirtualBox を入れて 仮想マシンを動かす(2:空仮想マシン作成+NW設定(NAT+ホストオンリー))
【VirtualBox】ネットワークの仕組みや設定方法を解説
3.AlmaLinuxのインストール | ゼロからはじめるLinuxサーバー構築|ちびすけ
VirtualBoxでAlmaLinuxのゲストOSを作成する|渡柴佳代音
【FAQ集】VirtualBoxで構築Ubuntu環境でよくある疑問を解決 | ほわらぼIT大学
TrueNAS SCALE
Getting Started
SCALE Tutorials
TrueNAS SCALEを使ってNAS+サーバーを作ってみる 準備編 - Qiita
TrueNAS SCALEを使ってNAS+サーバーを作ってみる ストレージ構築編 - Qiita
TrueNAS スケールを使い始める方法
Discussion