CentOS7に全文検索システムFessを導入

全文検索システムFess-12.4.3導入

Fessとは、Javaベースなオープンソースの全文検索システム。
検索エンジンにElasticsearchを使用し、Webサーバやファイルシステムに対してクロールが可能らしいので導入メモ。
Mediawiki にプラグイン実装しているElasticsearchの検索結果をそのまま渡せないだろうか。。などと考えている

Fess公式:https://fess.codelibs.org/ja/13.2/install/install.html

Fessの導入バージョンは検索エンジンであるElasticsearchにバージョン依存する。
現在、Elasticsearch-6.5.4を使用しているのでFess-12.4.3を導入する。

◆事前準備
Elasticsearch-6.5.4に対応しているFessのバージョンを調査
Elasticsearchのバージョンによって対応しているFessのバージョンは異なる。
Fess公式では最新のFessをインストールして、それに合わせたElasticsearchを導入しろと言っている。

当環境ではElasticsearchが既にインストール済みなので、Elasticsearch-6.5.4に対応しているFessのバージョンを調べる。

◇Fess公式サイト内でElasticsearchの対応バージョンを確認

今回はElasticsearch-6.5.4に導入したいので、Fess-12.4をセットアップしたい


◆Fess-12.4導入

◇Fessダウンロード
Gitで公開されているので、環境にあったFessのバージョンをダウンロード
公開URL:https://github.com/codelibs/fess/releases

今回のバージョンは、fess-12.4.3.rpm

# cd /tmp
# wget https://github.com/codelibs/fess/releases/download/fess-12.4.3/fess-12.4.3.rpm

◇Elasticsearch設定
最終行90行目あたりに追記

# vi /etc/elasticsearch/elasticsearch.yml
# ---------------------------------- Fess -----------------------------------
configsync.config_path: /var/lib/elasticsearch/config

◇Fessインストール

# rpm -ivh fess-12.4.3.rpm
準備しています...              ################################# [100%]
Creating fess group... OK
Creating fess user... OK
更新中 / インストール中...
   1:fess-12.4.3-1                    ######################            ( 66%)
############           ( 69%)         ###########
#############          ( 72%)         ###########
##############         ( 75%)         ###########
###############        ( 78%)         ###########
################       ( 81%)         ###########
#################      ( 84%)         ###########
##################     ( 87%)         ###########
###################    ( 90%)         ###########
####################   ( 93%)         ###########
#####################  ( 96%)         ###########
###################### ( 99%)         ###########
###################### [100%]
### NOT starting on installation, please execute 
the following statements to configure fess servic
e to start automatically using systemd
 sudo systemctl daemon-reload
 sudo systemctl enable fess.service
### You can start fess service by executing
 sudo systemctl start fess.service

◇Fess自動起動設定

# systemctl enable fess
Created symlink from /etc/systemd/system/multi-user.target.wants/fess.service to /usr/lib/systemd/system/fess.service.

◇Fess起動確認

# systemctl daemon-reload
# systemctl start fess
# systemctl status fess

◇Elasticsearchプラグイン導入 ※当環境ではanalysis-icuとanalysis-kuromojiは既に導入済

# /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-analysis-fess:6.5.1
# /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-analysis-extension:6.5.1
# /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-configsync:6.5.0
# /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-dataformat:6.5.0
# /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-langfield:6.5.0
# /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-minhash:6.5.0
# /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-learning-to-rank:6.5.0

※Elasticsearchのプラグイン導入時に出力されるエラー対処
エラー①

Warning: sha512 not found, falling back to sha1. 
This behavior is deprecated and will be removed in a future release. 
Please update the plugin to use a sha512 checksum.

Maven Centralでは、まだsha512に対応していないため、プラグインのインストール中にエラーが出力されても仕方がない
対処:気にしない

エラー②

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessDeclaredMembers
* java.lang.RuntimePermission getClassLoader
* java.lang.reflect.ReflectPermission suppressAccessChecks
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.
Continue with installation? [y/N]

対処:上記エラーは「y」を選んでEnter。

◇インストール済みプラグインの確認

# /usr/share/elasticsearch/bin/elasticsearch-plugin list 
analysis-extension
analysis-fess
analysis-icu
analysis-kuromoji
configsync
dataformat
langfield
learning-to-rank
minhash

◇ファイアウォール設定

# firewall-cmd --add-port=8080/tcp --permanent
success
# firewall-cmd --reload
success
# reboot

◇デーモン再起動

# systemctl daemon-reload
# systemctl restart elasticsearch

◇ブラウザで確認
http://<サーバIPアドレス>:8080
ログインIDとパスワード初期値:admin / admin

Elasticsearchでクラスターを組んでいなければ設定完了

 

Elasticsearchでクラスターを組んでいる場合

https://fess.codelibs.org/ja/12.1/install/install.html

公式サイトから一部引用

・クラスタ環境下での利用方法
Elasticsearchクラスタの利用方法
Fess では RPM/DEB パッケージでは外部のElasticsearchを標準で利用しますが、ZIPパッケージでのインストールにおいてはElasticsearchクラスタを構築しておき、そのElasticsearchクラスタへ接続して利用することができます。その際は、Elasticsearchのプラグインのインストールが必要です。 Elasticsearchの設定方法についてはRPM/DEBでの設定方法を参照してください。

Fess でElasticsearchクラスタへ接続するためには、起動オプションで指定します。 Windows環境では fess-<version>\bin\fess.in.batを変更します。 fess.dictionary.pathにはelasticsearch.ymlに設定したconfigsync.config_pathの値を設定してください。

・Fess設定

# vi /usr/share/fess/bin/fess.in.sh
17-19行目コメント除去
16 # External elasticsearch cluster
17 #ES_HTTP_URL=http://localhost:9200
18 #ES_TRANSPORT_URL=localhost:9300
19 #FESS_DICTIONARY_PATH=/var/lib/elasticsearch/config/

◇ブラウザで確認
http://<サーバIPアドレス>:8080
ログインIDとパスワード初期値:admin / admin

 

 

 

 

 

 

 

 

 

a