はじめに
NAS内のファイル数が数十万規模になると、ファイル名検索では目的のデータを見つけにくくなり、ディレクトリー構造の複雑化で検索効率も低下します。
このような環境では全文検索が有効です。
本シリーズでは、NAS内のファイルを高速かつ容易に検索するため、オープンソースの 全文検索サーバー Fess を用いて検索サーバーを構築する手順を紹介します。
検索サーバーのホストとしてRaspberry Pi 5を採用し、低消費電力で常時稼働可能な検索ノードの設置を目標としました。
本記事は全3回のうち 第1回 Pi 5 セットアップ です。
シリーズ一覧
- Raspberry Pi × Fess で全文検索環境構築 (1) Pi 5 セットアップ
- Raspberry Pi × Fess で全文検索環境構築 (2) Fess インストール
- Raspberry Pi × Fess で全文検索環境構築 (3) Fess 構成
ハードウェア構成
本構築では、NASを全文検索可能にするため以下の3サーバーで構成します。

- 検索サーバー (Raspberry Pi 5)
NAS内のファイルをクロールし、全文検索用の索引を作成 - NAS
ファイルの保存ストレージ - LLMサーバー (Ollama)
FessのAI検索機能で使用するローカルLLM
クライアントPCのWebブラウザーから検索サーバーにアクセスして検索を実行します。
検索サーバー
使用するハードウェアは以下のとおりです。
- Raspberry Pi 5 16GB RAM
- Raspberry Pi Active Cooler
- Raspberry Pi SSD Kit 512GB
- Raspberry Pi 27W USB-C Power Supply
- GeeekPi Metal Case for Raspberry Pi 5
メモリー容量
全文検索の索引作成では、大量のファイルを解析しながらメモリー上にデータ構造を保持します。最大容量である16GBモデルを選択することで索引作成時の安定性と処理性能を確保します。
ストレージのタイプ
全文検索ではクロール処理や索引更新で大量のランダム・アクセスが発生します。SDカードはI/O性能が低く耐久性にも限界があるため、高速で耐久性の高いSSDを採用します。
Raspberry Pi 5の組み立て
全文検索の索引作成ではCPU負荷が高くなるため、Raspberry Pi 5には冷却対策が必須です。まず、アクティブ・クーラーを取りつけて、長時間の索引作成でも安定して動作できるようにします。

次にストレージとして使用するSSDキット(M.2 HAT+)を取りつけます。Raspberry Pi 5本体とM.2 HAT+の接続には付属のフラット・ケーブルを使用します。

Raspberry Pi OSインストール準備
Raspberry Pi Imagerのダウンロード
Raspberry Pi OSのインストールにはRaspberry Pi Imagerを使用します。
使用しているオペレーティング・システムに対応したRaspbeery Pi Imagerを 公式サイト https://www.raspberrypi.com/software/ からダウンロードします。
Raspberry Pi Imagerのインストール
ダウンロードしたインストーラーを起動します。
- インストールで使用する言語を選択して OK
-
Next
- 「I Accept the agreement」を選択して Next
- インストール先を指定して Next
- デスクトップにショートカットを作成するか指定して Next
- デバイスソフトウェアのインストール確認が表示された場合は インストール
-
Finish
Raspberry Pi OSインストール
SSDをPCに接続して、SSDにRaspberry Pi OSをインストールします。
- 「Raspberry Pi 5」を選択して 次へ
- GUIを使用しないので「Raspberry Pi OS (other)」を選択
- 「Raspberry Pi OS Lite (64-bit)」を選択して 次へ
- Raspberry Pi OSをインストールするストレージを選択
SSDの接続方式によっては「Exclude system drives」のチェックを外す必要があります。
- 確認画面が表示された場合、デバイスが正しいことを確認後にデバイス名を入力して 続ける
- ホスト名を入力して 次へ
例ではpi5
- タイム・ゾーンなどを指定して 次へ
- ユーザー名とパスワードを指定して 次へ
例ではpiユーザーを作成
- Wi-Fiを使用する場合は接続情報を指定
Wi-Fiを使用しない場合は空欄のまま 次へ
- SSH設定を指定して 次へ
例ではSSH接続でパスワード認証を使用
- そのまま 次へ
- インストール先のデバイスやオペレーティング・システムを確認して WRITE
- メッセージを確認して I UNDERSTAND, ERASE AND WRITE
- 完了を確認して FINISH
- SSDをRaspberry Piに接続してケースに組み込み
Raspberry Pi OS初期設定
Raspberry Pi OSのインストール後、検索サーバーとして安定運用するためにパッケージ更新、PCIe Gen 3の有効化、ネットワーク設定などの初期設定を行います。
パッケージ更新
Raspberry Piの電源を投入し、SSHで pi としてログインします。
システムを最新化します。
$ sudo apt update && sudo apt full-upgrade -y
$ sudo rpi-eeprom-update
PCIe Gen 3の有効化
M.2 NVMe SSDを最大性能で利用するため、PCIe Gen 3を有効化します。
$ sudo nano /boot/firmware/config.txt
/boot/firmware/config.txt の末尾に以下を追記します。
dtparam=pciex1_gen=3
再起動
設定後、再起動します。
$ sudo reboot
ネットワーク設定
検索サーバーとして運用するため、IPアドレスを固定化します。
SSHで pi として再ログインし、 nmcli を使用してネットワーク設定を行います。
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 53a9baa6-2640-3ee5-b884-7469f4dedec5 ethernet eth0
lo d23d7164-a57b-4cfd-afd4-aac32fdf53d7 loopback lo
$ sudo nmcli connection modify "Wired connection 1" \
ipv4.addresses xxx.xxx.xxx.xxx/xx \
ipv4.gateway xxx.xxx.xxx.xxx \
ipv4.dns xxx.xxx.xxx.xxx ipv4.method manual
$ sudo nmcli connection up "Wired connection 1"
この操作でネットワーク接続が切断されるため、再度SSHで pi としてログインします。
Wi-Fiの無効化とhostsの確認
この例では有線接続のみ使用のため、Wi-Fiを無効化します。
$ sudo rfkill block wifi
必要に応じて /etc/hosts を確認、編集します。
Raspberry Pi OSで hosts を編集する場合、cloud_init を無効化しないとOS再起動で hosts が元に戻ってしまうことに注意が必要です。
設定の完了後、再起動します。
$ sudo reboot
次のステップ
続いてFessのインストールに進みます。