Linux
Docker
Fess

全文検索サーバを構築した話 その1(dockerによる構築編)


はじめに

自社で全文検索サーバの需要がありそうだなーとなんとなく感じていました。

理由としては、


  • 社内に数TBの文書があるが、検索手段はWindows標準エクスプローラーの検索のみ。

  • とにかく多い文書の中から、参考にしたい文書になかなかたどり着けないという意見が出ている。

それ以外にも細かい理由はあると思います。が、とりあえず上記課題を解決すべく検討を始めました。


1. 製品導入の検討

実は、昨年の今頃あたりからずっと全文検索サーバを探しておりました。

もちろん有償のパッケージもので。

なぜかというと、保守サポートないものを会社に入れたくないから。

なので、なるべくパッケージもので探してたのですが…

パッケージものって高いのよねぇ…

パッケージのみで1千万超えてくるものも普通で、それにサーバとSI費用が乗っかってくると…

現実味がなくて、パッケージものは検討をやめました。


2. OSSでの実装を検討

製品導入の検討をやめて、全文検索サーバについてはしばらく寝かせておいたのですが、

突然復活させざるを得なくなってしまいました。

なので、とりあえずOSSを組み合わせてどこまでできるか検討してみることにしました。


検討に使用した構成

種別
名前

OS
CentOS 7

HW
Dell PowerEdge T110

CPU
Intel Xeon X3430

メモリ
4GB

HDD
500GB

全文検索

Fess + ElasticSearch

昔使ったサーバが転がっていたので、これにCentOSを入れて検証環境を構築してみました。


3. 検証環境構築

まずは普通にOSインストール。

んで、FessとElasticSearchをyumでインストールしてみたんですが…

どうやっても連携がうまくいかん…

色々試行錯誤してみたんですが、どうにも原因がわからんしfessもElasticSearchも

慣れてないせいかアンコントローラブルなのでどうにもならなかったところに、

一つの光明が…

「そういやdockerって使ったことなかったけど、dockerでFessの導入実績ってあるんかな?」

ググってみたら、こちらの記事にたどり着きました。

さっそく導入をば。

$ sudo yum -y install docker

$ sudo docker pull codelibs/fess:latest

この2ラインだけで、dockerのインストールとfessのインストールまで終わります。

んでもって、

$ sudo docker run -d -p 80:8080 --name fess codelibs/fess:latest

で、コンテナを配置して起動。

ポートに関しては8080をフォワードせずに、ホストの80ポートをdockerコンテナの8080に

フォワードする構成にしてみました。

(今後の運用を考えるとURLをなるべく短くしたかったため)

これだけです。

OSを最小構成でインストールして、この3つのコマンドを実行するだけで、Fessサーバができました。

正直、目から鱗が落ちるとはこのことかと思いました。

dockerやばい…

なんでこれを今まで触らなかったのか…

FessとElasticsearchを入れて散々悩んだ挙句に動かなかったものが、ものの10分で環境ができてしまう。

さらに、コンテナの環境が汚れてきたらコンテナ削除してまたdocker runするだけでリフレッシュできてしまう。

本当に素晴らしい。

こりゃ散々話題になるわけですな…

完全に浦島太郎でしたが、今回使用してみて、dockerの素晴らしさをしみじみと感じました。

というわけで、とても簡単にFessによる全文検索サーバの構築が完了しました。

次回以降で、Fessの環境設定と全文検索の準備作業諸々も書きたいと思います。