Elasticsearch のインストール
Elasticsearch
Elasticsearch は Elasticsearch BV 社によって提供されている全文検索サーバーです。
グループウェアの全文検索、CMSのサイト内検索をご利用になる際は、本手順を参照し Elasticsearch をインストールしてください。 なお、本書では CentOS 7 でのインストール方法を説明します。他のディストリビューションをご利用の方は適時読み替ええください。
Install
次のようなファイル /etc/yum.repos.d/elasticsearch-5.repo
を作成します。
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
次のコマンドを実行し Elasticsearch と java をインストールします。
$ su -
# yum install elasticsearch java-1.8.0-openjdk
CentOS 7 以外のディストリビューションをご利用の方は Installing Elasticsearch を参照の上、適時、インストールしてください。
次のコマンドを実行し Elasticsearch のプラグインをインストールします。
$ su -
# cd /usr/share/elasticsearch
# bin/elasticsearch-plugin install analysis-icu
# bin/elasticsearch-plugin install analysis-kuromoji
# bin/elasticsearch-plugin install ingest-attachment
次のコマンドを実行し Elasticsearch を起動します。
$ su -
# systemctl daemon-reload
# systemctl start elasticsearch.service
次のコマンドを実行し Elasticsearch の自動起動を有効にします。
$ su -
# systemctl enable elasticsearch.service
次のコマンドを実行し Elasticsearch が起動していることを確認します。
$ curl 'http://127.0.0.1:9200/?pretty'
次のような JSON が表示されれば Elasticsearch は起動しています。
{
"name" : "S_x_GM3",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Cf1_-7haTgGla3SiCRStqw",
"version" : {
"number" : "5.6.1",
"build_hash" : "667b497",
"build_date" : "2017-09-14T19:22:05.189Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}
グループウェアの設定
Rails コンソールから以下のコマンドを実行し、全文検索を有効にします。 以下の例では「シラサギ市」の全文検索を有効にしています。
group = Gws::Group.find_by(name: 'シラサギ市')
group.menu_elasticsearch_state = 'show'
group.elasticsearch_hosts = ["127.0.0.1:9200"]
group.save
「シラサギ市」の全文検索が有効になったかどうか、以下のコマンドを実行して確認してみます。
$ bundle exec rake gws:es:info site=シラサギ市
有効になっている場合、次のような JSON が表示されます。
{
"name": "S_x_GM3",
"cluster_name": "elasticsearch",
"cluster_uuid": "Cf1_-7haTgGla3SiCRStqw",
"version": {
"number": "5.6.1",
"build_hash": "667b497",
"build_date": "2017-09-14T19:22:05.189Z",
"build_snapshot": false,
"lucene_version": "6.6.1"
},
"tagline": "You Know, for Search"
}
「シラサギ市」の全文検索を初期化するため、以下のコマンドを実行します。
$ bundle exec rake gws:es:ingest:init site=シラサギ市
$ bundle exec rake gws:es:create_indexes site=シラサギ市
$ bundle exec rake gws:es:feed_all site=シラサギ市
シラサギを起動しグループウェアの全文検索で *:*
を検索してみてください。
正しく設定できている場合、何らかの文書がヒットします。
サイト内検索の設定
Rails コンソールから以下のコマンドを実行し、サイト内検索を有効にします。 以下の例では「シラサギ市」のサイト内検索を有効にしています。
site = Cms::Site.find_by(host: 'www')
site.elasticsearch_hosts = ["127.0.0.1:9200"]
site.save
「シラサギ市」のサイト内検索を初期化するため、以下のコマンドを実行します。
$ bundle exec rake cms:es:ingest:init site=www
$ bundle exec rake cms:es:create_indexes site=www
$ bundle exec rake cms:es:feed_all site=www
定期処理で検索インデックスを更新します。
[crontab]
0 * * * * /bin/bash -l -c 'cd /var/www/shirasagi && bundle exec rake cms:es:feed_releases site=www' >/dev/null