Ubuntu14.04にElasticsearch 2.1をインストールする方法の備忘録です。
ElasticsearchはLuceneベースの全文検索エンジンです。
Elasticsearchの勉強をするためにインストールしてみます。Ubuntu14.04は適当なVagrant boxを探してきて用意しました。
構成
Elasticsearch 2.1.1はOracleかOpenJDKのJava 8 update 20またはJava 7 update 55より新しいバージョンのJVMが必要です。 今回はOpenJDKを使います。
- Ubuntu 14.04
- OpenJDK 1.8.0_72
- Elasticsearch 2.1.1
OpenJDKをインストール
openjdk-8-jdkパッケージのインストール
OpenJDKのリポジトリを追加して、openjdk-8-jdkをインストールします。
vagrant@vagrant-ubuntu-trusty:~$ sudo apt-get update vagrant@vagrant-ubuntu-trusty:~$ sudo apt-get install software-properties-common vagrant@vagrant-ubuntu-trusty:~$ sudo add-apt-repository ppa:openjdk-r/ppa vagrant@vagrant-ubuntu-trusty:~$ sudo apt-get update vagrant@vagrant-ubuntu-trusty:~$ sudo apt-get install openjdk-8-jdk
JAVA_HOME環境変数を設定
デフォルト環境変数のJAVA_HOMEを設定して、再読み込みします。
vagrant@vagrant-ubuntu-trusty:~$ echo 'JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"' | sudo tee -a /etc/environment JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64" vagrant@vagrant-ubuntu-trusty:~$ source /etc/environment
バージョンの確認
インストールしたJavaのバージョンを確認します。
vagrant@vagrant-ubuntu-trusty:~$ java -version openjdk version "1.8.0_72-internal" OpenJDK Runtime Environment (build 1.8.0_72-internal-b05) OpenJDK 64-Bit Server VM (build 25.72-b05, mixed mode) vagrant@vagrant-ubuntu-trusty:~$ javac -version javac 1.8.0_72-internal
Elasticsearchをインストール
リポジトリを追加
Elasticsearch 2.xのリポジトリを追加します。
vagrant@vagrant-ubuntu-trusty:~$ wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - OK vagrant@vagrant-ubuntu-trusty:~$ echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list deb http://packages.elastic.co/elasticsearch/2.x/debian stable main
Elasticsearchをインストール
パッケージリストを更新して、Elasticsearchをインストールします。
vagrant@vagrant-ubuntu-trusty:~$ sudo apt-get update vagrant@vagrant-ubuntu-trusty:~$ sudo apt-get install elasticsearch
自動起動の設定
システム起動時にelasticsearchサービスが起動するようにします。
vagrant@vagrant-ubuntu-trusty:~$ sudo update-rc.d elasticsearch defaults 95 10 Adding system startup for /etc/init.d/elasticsearch ... /etc/rc0.d/K10elasticsearch -> ../init.d/elasticsearch /etc/rc1.d/K10elasticsearch -> ../init.d/elasticsearch /etc/rc6.d/K10elasticsearch -> ../init.d/elasticsearch /etc/rc2.d/S95elasticsearch -> ../init.d/elasticsearch /etc/rc3.d/S95elasticsearch -> ../init.d/elasticsearch /etc/rc4.d/S95elasticsearch -> ../init.d/elasticsearch /etc/rc5.d/S95elasticsearch -> ../init.d/elasticsearch vagrant@vagrant-ubuntu-trusty:~$ sudo service elasticsearch start * Starting Elasticsearch Server [ OK ]
Elasticsearchの起動確認
デフォルトでは9200ポートでリッスンしています。 curl
で localhost:9200
にアクセスするとノードの情報が返ってきます。
vagrant@vagrant-ubuntu-trusty:~$ curl -XGET localhost:9200 { "name" : "Ringo Kid", "cluster_name" : "elasticsearch", "version" : { "number" : "2.1.1", "build_hash" : "40e2c53a6b6c2972b3d13846e450e66f4375bd71", "build_timestamp" : "2015-12-15T13:05:55Z", "build_snapshot" : false, "lucene_version" : "5.3.1" }, "tagline" : "You Know, for Search" }
プラグインをインストール
Elasticsearchでよく利用するプラグインをインストールしておきます。
analysis-kuromoji
は日本語の分かち書きのためのプラグインです。
analysis-icu
はUnicode正規化をおこなうためのプラグインです。
lmenezes/elasticsearch-kopf
はノードの管理をGUIで行なうことができるプラグインです。
analysis-kuromoji
と analysis-icu
はElasticsearch 2.x になって公式がリリースするようになったようです。
vagrant@vagrant-ubuntu-trusty:~$ cd /usr/share/elasticsearch/
vagrant@vagrant-ubuntu-trusty:/usr/share/elasticsearch$ sudo bin/plugin install analysis-kuromoji
vagrant@vagrant-ubuntu-trusty:/usr/share/elasticsearch$ sudo bin/plugin install analysis-icu
vagrant@vagrant-ubuntu-trusty:/usr/share/elasticsearch$ sudo bin/plugin install lmenezes/elasticsearch-kopf
Elasticsearchの設定
開発環境用に設定を変更しておきます。
network.host
はElasticsearch 2.xからデフォルトでlocalhostにバインドされるようになったようです。開発環境では外のIFからもアクセスしたいので指定しています。
vagrant@vagrant-ubuntu-trusty:~$ cat << EOF | sudo tee -a /etc/elasticsearch/elasticsearch.yml > index.number_of_shards: 1 > index.number_of_replicas: 0 > network.host: 0.0.0.0 > EOF index.number_of_shards: 1 index.number_of_replicas: 0 network.host: 0.0.0.0
再起動して設定を反映
再起動して、設定とプラグインを反映させます。
vagrant@vagrant-ubuntu-trusty:~$ sudo service elasticsearch restart * Stopping Elasticsearch Server [ OK ] * Starting Elasticsearch Server [ OK ]
KOPFの画面
http://localhost:9200/_plugin/kopf/ にブラウザでアクセスするとKOPFの画面が開きます。
ここからノードの状態を管理したり、簡単なクエリを発行したりできるみたいです。
(まだインデック等なにもない状態)
Elasticsearchに関する書籍
日本語の書籍は結構古いバージョンのElasticSearchのものしかないようです。

高速スケーラブル検索エンジン ElasticSearch Server
- 作者: Rafal Kuc・Marek Rogozin’ski,株式会社リクルートテクノロジーズ,大岩達也、大谷純、兼山元太、水戸祐介、守谷純之介
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2014/03/21
- メディア: 大型本
- この商品を含むブログ (4件) を見る
今のところ公式のドキュメントが一番よいみたいです。