Fessとは
公式サイト: http://fess.codelibs.org/ja/
Fessとは、Javaで作られた全文検索サーバーです。Github上にApacheライセンスで公開されており、Googleの検索エンジンのようなものを簡単に導入することができます。
また、GUIによる操作で設定を行えるため、管理も容易に行えます。
今回は既に構築してあるElasticsearchクラスタにアクセスしてみます。
環境
Ubuntu 16.04 LTS
java version "1.8.0_91"
Fess 10.1.1
Elasticsearch 2.3.3
手順
基本的にはここの公式ドキュメントにのっとって進めていきます。
Elasticsearch
まずは、Elasticsearchをダウンロード & インストールし、Fessに使用されるプラグインを導入します。
$ wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/deb/elasticsearch/2.3.3/elasticsearch-2.3.3.deb
$ sudo dpkg -i ./elasticsearch-2.3.3.deb
$ sudo /usr/share/elasticsearch/bin/plugin install org.codelibs/elasticsearch-analysis-kuromoji-neologd/2.3.0
$ sudo /usr/share/elasticsearch/bin/plugin install org.codelibs/elasticsearch-analysis-ja/2.3.0
$ sudo /usr/share/elasticsearch/bin/plugin install org.codelibs/elasticsearch-analysis-synonym/2.3.0
$ sudo /usr/share/elasticsearch/bin/plugin install org.codelibs/elasticsearch-configsync/2.3.0
$ sudo /usr/share/elasticsearch/bin/plugin install org.codelibs/elasticsearch-dataformat/2.3.0
$ sudo /usr/share/elasticsearch/bin/plugin install org.codelibs/elasticsearch-langfield/2.3.0
$ sudo /usr/share/elasticsearch/bin/plugin install http://maven.codelibs.org/archive/elasticsearch/plugin/kopf/elasticsearch-kopf-2.0.1.0.zip
$ sudo /usr/share/elasticsearch/bin/plugin install org.bitbucket.eunjeon/elasticsearch-analysis-seunjeon/2.3.3.0
Fessで使用するため、Elasticsearchのコンフィグファイルに設定を追加します。
configsync.config_path: /var/lib/elasticsearch/config
script.engine.groovy.inline.update: on
以下のコマンドでOKです。
$ sudo echo -e "configsync.config_path: /var/lib/elasticsearch/config\nscript.engine.groovy.inline.update: on" | sudo tee -a /etc/elasticsearch/elasticsearch.yml
インストールを確認し、起動します。
$ sudo /bin/systemctl daemon-reload
$ sudo /bin/systemctl status elasticsearch.service
● elasticsearch.service - Elasticsearch
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: en
Active: inactive (dead)
(略)
$ sudo /bin/systemctl start elasticsearch.service
$ sudo /bin/systemctl status elasticsearch.service
● elasticsearch.service - Elasticsearch
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: en
Active: active (running) since 月 2016-07-04 16:46:40 JST; 1s ago
(略)
$ curl -XGET "localhost:9200/_aliases?pretty"
{
".configsync" : {
"aliases" : { }
}
}
スタートアップ時に自動起動するには、
$ sudo /bin/systemctl enable elasticsearch.service
も実行しましょう。
Fess
次に、Fessをダウンロード & インストールします。といっても、まだdebパッケージがないようなのでzip版を落としてきます。
$ wget https://github.com/codelibs/fess/releases/download/fess-10.1.1/fess-10.1.1.zip
$ unzip fess-10.1.1.zip
デフォルトではFessが参照するElasticsearchは、9201と9301になっています。
fess/bin/fess.in.sh を変更して、9200と9300に変更しましょう。
ファイルの後半で使用されているので、前半に記述する必要があります。
私は3行目に追加しました。
#!/bin/sh
ES_HTTP_URL=http://localhost:9200
ES_TRANSPORT_URL=localhost:9300
FESS_DICTIONARY_PATH=/var/lib/elasticsearch/config/
(略)
そしてFessを起動します。
$ ./bin/fess
ちゃんと9200と9300でアクセスしているか確認してみましょう。
$ curl -XGET "localhost:9200/_aliases?pretty"
{
"fess" : {
"aliases" : { }
},
".suggest.analyzer" : {
"aliases" : { }
},
".suggest" : {
"aliases" : { }
},
".fess_user" : {
"aliases" : { }
},
".suggest-array" : {
"aliases" : { }
},
"fess.suggest" : {
"aliases" : { }
},
".fess_config" : { (略) },
".configsync" : {
"aliases" : { }
},
"fess_log" : {
"aliases" : { }
}
}
Fessで使うインデックスが登録されていることが確認できます。
まとめ
今回はアクセスするElasticsearchをFess側から指定してみました。
既存のリソースを使ったり、外部に構築されているElasticsearchクラスタへ接続することができますね。