オープンソースの全文検索サーバーFess、Docker環境(Linux CentOS7)にインストールしてみた

当サイトのサイト内検索、Googleのを使っております。昔は結構な数のエントリが登録され検索結果にも表示されていたのですが最近は
【Google Search Consoleでページのインデックス確認すると】Googleサイト内検索で全然引っかからないなと思ったら6月最初前後でだいぶインデックスされなくなっていた(2023年07月05日 (水曜日))
Google Search Consoleでページのインデックス登録画面

Google Search Consoleでページのインデックス登録画面
こんな感じでインデックスから外され検索結果に表示されない事も多くなってまいりました。まあ1エントリ1エントリの質が登録される質に達していないというのもあるのかもしれませんが、大多数の方の検索にはでなくても、自分で自分のサイト内検索でだいたいのわかるようになっていれば、というような状態でございます。ブログを投稿したらブログ書きました>ブログのタイトル、という形でTwitterに投稿、タイトルにおおよそ必要そうなキーワードを含めており、Googleのサイト内検索よりもツイログで検索かける事も多くなってきました。

という事で自前でサイト内検索システム、準備できないかな?フリーのでヨサゲで導入楽そうなのがないかな?と調べていました。昔はKabayakiというシステム使ったりしていましたけど今だと
オープンソース全文検索サーバー Fess
というものがあるようです。サーバーに直接インストールでもDockerでも対応しております。
これ良さそうだな、という事で試しにインストールしてみる事に。

インストールする環境は
Intel Mac(x86)のmacOS 12のVirtualBOX(仮想環境)でLinux(CentOS 7)のインストールからサーバー環境構築(2022年11月08日 (火曜日))
Dockerで--mountしてたらそんなフラグ(オプション)はない、とエラー。yumで入れたCentOS 7のDockerのバージョンが古かった【なので最新?安定VerのDockerインストールした】(2023年02月04日 (土曜日))
でございます。使用想定は私1人です。上記の環境にインストールするので外出していない時はそのままWebブラウザで使用できますが、外の場合はVPN接続して使用する事を想定しています。

てっとり早く、Docker使いましょう。
インストール手順
でDocker環境でインストールする前に「OpenSearch が Docker コンテナーとして実行できるようにするため、OS側で「vm.max_map_count」の値を調整」が必要との事。標準のままいけないのかな?必要な値は262144との事。
OSの環境はCentOS 7でございます。とりあえずBingチャットで
「CentOS 7のvm.max_map_countの標準値はいくつ?」
と聞いてみると
「CentOS 7のvm.max_map_countのデフォルト値は65530です。このパラメータは、プロセスが使用可能なメモリマップ領域の最大数を定義します。ほとんどのアプリケーションは数百以下のマップを必要としますが、特定のプログラム(特にmallocデバッガなど)はそれらを多く消費する可能性があります。したがって、アプリケーションによってはこの値を増やす必要があるかもしれません」

というお答え。なるほど。これなら数値を変更する必要ありますね。

という事で
sudo vi /etc/sysctl.conf

vm.max_map_count=262144
追加して
sudo sysctl -p
とすると
vm.max_map_count = 262144
と返ってきました。

これでええのかな?

あとは書いてあるとおり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
で実行。
[+] Running 19/19
? fess01 Pulled 474.3s
? 7007490126ef Pull complete 163.1s
? 56c7ccc62e5c Pull complete 188.8s
? e8b8056fe6bb Pull complete 279.2s
? 2bb5f8cfd154 Pull complete 330.1s
? 6adb21bdb1e7 Pull complete 330.8s
? c0785e914c20 Pull complete 410.9s
? 0cbd4153243b Pull complete 411.2s
? 5354e4f75e81 Pull complete 470.7s
? 4f4fb700ef54 Pull complete 471.2s
? f641b81ead04 Pull complete 471.4s
? es01 Pulled 336.2s
? e90aa42bc48f Pull complete 174.6s
? 5af26e47be84 Pull complete 186.8s
? 7fe5851e3def Pull complete 188.5s
? 8f736123dd00 Pull complete 313.5s
? 1dc6ea8e2223 Pull complete 330.7s
? 3365806e4fd0 Pull complete 331.6s
? 50454ef0a83f Pull complete 332.5s
[+] Running 5/5
? Network fess_01_esnet Created 1.1s
? Volume "fess_01_esdata01" Created 0.2s
? Volume "fess_01_esdictionary01" C... 0.0s
? Container es01 Started 8.8s
? Container fess01 Started 3.9s

で完了。

docker container ls
としますと。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b9fe824232d8 ghcr.io/codelibs/fess:14.10.1 "/bin/sh -c /usr/sha..." About a minute ago Up About a minute 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp fess01
e2d55ed081e8 ghcr.io/codelibs/fess-opensearch:2.9.0 "./opensearch-docker..." 2 minutes ago Up About a minute 9300/tcp, 9600/tcp, 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 9650/tcp es01
a384aec6e326 coredns-coredns "/coredns -conf /etc..." 3 months ago Up 31 hours 0.0.0.0:53->53/tcp, 0.0.0.0:53->53/udp, :::53->53/tcp, :::53->53/udp coredns

ちゃんと動いているようですがなんか重い。このシステムでは性能的に厳しいか?

Webブラウザで
http://IPアドレス:8080
にアクセスします。が、画面が表示されるまで少し時間がかかりました。やはり性能的に厳しいか?Javaが動いているしなぁ・・・・と思った頃に
オープンソースの全文検索サーバーFess トップ画面
画面が表示されました。まだデータは何も収集していないので検索しても何も表示されませんが。

管理画面にログイン。最初のユーザー名はadmin、パスワードはadminですが初回ログインの後、新しいパスワードを設定する必要があります。

そうすると
オープンソースの全文検索サーバーFess 管理画面 ダッシュボード
ダッシュボードが表示されました。

ウェブサイトのクロールに関する設定
あとでこれ見てWebサイトクロールの設定するか、今日はここまでにしておこう。

--------------2023年10月1日 15時16分追記------------------
全文検索サーバーFess、Docker環境(Linux CentOS7)にインストールして設定してみたけどクローラーが動かない【性能足りてなくて論外でした】(2023年10月 1日(日曜日))
Fessの推奨スペックにはほど遠い環境で動かそうとしていました。
という事でしばらく?Fess動作は断念。

--------------2023年10月1日 15時16分追記ここまで------------------