LoginSignup
8
11

More than 5 years have passed since last update.

Fessで外部のElasticsearchクラスタを使用する

Last updated at Posted at 2016-07-04

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のコンフィグファイルに設定を追加します。

/etc/elasticsearch/elasticsearch.yml
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/fess.in.sh
#!/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クラスタへ接続することができますね。

8
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
11