約束の地

キャロの想い出

Ubuntu 16.04 LTS に Fess(deb版) を 外部 Elasticsearch を使う設定でインストールする方法

Fess

「5 分で簡単に構築可能な全文検索サーバー」です。

GitHub - codelibs/fess: Fess is very powerful and easily deployable Enterprise Search Server.

Ubuntu 16.04 LTS にてインストールする

Fess を Ubuntu 16.04 LTS にインストールする方法を記します。ここで、以下の条件でインストールします。

  • Fess は zip版 ではなく deb版 を入れる
  • Elasticsearch は外部のもの(内蔵ではない)を用いる

具体的な手順

以下、ひとつひとつ順を追って説明します。

1. Java をインストールする

まず Java を以下のように入れます。すでにインストールしてあるならば飛ばしてください。JRE(Java Runtime Environment)で十分です。またバージョンは 9 でも大丈夫だと思います。default-jre でも大丈夫でしょう。

$ sudo apt-get install openjdk-8-jre

2. Elasticsearch をインストールする

次に Elasticsearch を入れましょう。以下のページからたどって deb ファイルをダウンロードします。

Download Elasticsearch Free • Get Started Now | Elastic

しかしここで注意です。後述する「プラグイン」が対応しているバージョンをインストールしないといけません。2017年10月13日現在では、最新版は 5.6.3 ですが、プラグインの対応の都合上、5.6.1 を利用します。

過去のバージョンをダウンロードするためには上記のダウンロードページ内の「past releases」というリンクをたどります*1。そうすると過去のバージョンを含めた一覧のページに飛びますので、ここで「Elasticsearch 5.6.1」のリンクをクリックします。飛んだ先のページにダウンロード種別の一覧が記載されているので、「DEB」をクリックすることで https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.1.deb をダウンロードすることができます。

ダウンロードできたならば dpkg -i でインストールするだけです。

$ sudo dpkg -i elasticsearch-5.6.1.deb

3. Fess をインストールする

Fess をインストールします。zip版 と deb版 があり、どちらでもよいのですが、deb版 のインストールの記事が見当たらなかったので、deb版 をインストールします。

まず GitHub の releases のページに行きます。そしてダウンロードしたいバージョンのうち、拡張子が .deb のものをダウンロードします。今回は 11.4.1 を落としたいと思いますので以下のようにすれば OK です。

$ wget https://github.com/codelibs/fess/releases/download/fess-11.4.1/fess-11.4.1.deb

.deb が落とせたならば dpkg -i でインストールをします。

$ sudo dpkg -i fess-11.4.1.deb

4. Elasticsearch の設定ファイルに追記する

インストールマニュアルにもあるように、/etc/elasticsearch/elasticsearch.ymlに以下の表記を追加します。

configsync.config_path: /var/lib/elasticsearch/config

elasticsearch.ymlはインストール直後はすべてコメントで埋まっているので、最終行に上記の内容をコピペしてあげればいいでしょう。

5. Elasticsearch のプラグインをインストールする

やはりインストールマニュアルにあるように、次に Elasticsearch のプラグインをインストールします。

ここで「2.」のバージョンの問題が出てきます。下記のインストールコマンドの末尾にバージョン番号が付与されていることがわかると思いますが、Elasticsearch と プラグイン のバージョンを合致させなければいけません。そして、プラグインのバージョンは、必ずしも Elasticsearch の最新版に追従しているわけではありません。

したがって、この記事では Elasticsearch の 5.6.1 をインストールし、プラグインも 5.6.1 に対応したものをインストールします。

以下のコマンドを実行していきましょう。

$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-analysis-fess:5.6.1
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-analysis-ja:5.6.1
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-analysis-synonym:5.6.1
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-configsync:5.6.1
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-dataformat:5.6.1
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-langfield:5.6.1
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-minhash:5.6.1
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-analysis-kuromoji-neologd:5.6.1

最後の elasticsearch-analysis-kuromoji-neologdKuromoji の、いわゆるNEologd 辞書です。こちらを入れておいて損はないと思いますので、入れておきます。

6. Fess の設定ファイルを修正する

/usr/share/fess/bin/fess.in.shに Fess の設定ファイルがありますのでこれを修正しましょう。インストールマニュアルには fess-<version>/bin/fess.in.shを変更します とありますが、これは誤りですね。

Elasticsearch を有効にするために、以下の部分のコメントを外します。

# ES_HTTP_URL=http://localhost:9200
# ES_TRANSPORT_URL=localhost:9300
# FESS_DICTIONARY_PATH=/var/lib/elasticsearch/config/

他にも、ポート番号を 8080 から変更できたりもしますが、ここでは触れません。

7. Elasticsearch を起動する

ここまで来たならばもうすぐです。まず Elasticsearch を起動しましょう。

$ sudo service elasticsearch start

起動できたならば、http://localhost:9200 にアクセスしてみます。JSON が返ってくれば正しく起動できています。

8. Fess を起動する

そして、Fess を起動します。

$ sudo service fess start

さあ、http://localhost:8080 にアクセスしてみましょう。以下のような画面*2が出ればインストール完了です!

f:id:gregminster:20171013161613p:plain

補足

インストール後に細かい各種設定を行いますが、基本的にWebインターフェイスですし、マニュアルを見ながら設定していけばよいでしょう。2016年 の Qiita の Advent Calender も参考になります。

なお、ロゴ画像は /usr/share/fess/app/images の画像をいじればよいです*3。favicon は /usr/share/fess/app にあります。

<title>タグの中身を変更したい場合には、/usr/share/fess/app/WEB-INF/classes/fess_label_ja.propertiesを編集します。日本語は Unicode で書かれていますので、変換ページなどを利用するのがいいでしょう。

Fess は開発が活発で、柔軟な設定もでき、そして何よりすぐに建てられるのが魅力的です。Solr や Groonga では大げさすぎる、という場合には真っ先に選択肢に入ると思います。

*1:見つけづらいです

*2:こちらのキャプチャは「デモページ(http://search.n2sm.co.jp/)」のキャプチャになります

*3:同一ファイル名にして画像を差し替える

Powered by はてなブログ