docker の公式 elasticsearch をインストールしてみたのですが、検索して見つけた他の方が書かれた2014年頃の手順書だとコマンドなどが少し違っていたので、メモとして残します。
なお2015年12月現在、dockerイメージの elasticsearch のバージョンは 2.1.1, Amazon Elasticsearch Service のバージョンは 1.5.2 。けっこう差がありますね。
機能にどれだけの差があるかは把握していません。
ubuntu(ホスト)
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=15.04
DISTRIB_CODENAME=vivid
DISTRIB_DESCRIPTION="Ubuntu 15.04"
# $ sudo apt-get install docker.io
$ sudo docker --version
Docker version 1.6.2, build 7c8fca2
$ sudo docker pull elasticsearch
$ sudo docker run -it elasticsearch /bin/bash
elasticsearchコンテナ
# elasticsearch --version
Version: 2.1.1, Build: 40e2c53/2015-12-15T13:05:55Z, JVM: 1.8.0_66-internal
# plugin install mobz/elasticsearch-head
# plugin install analysis-kuromoji
- elasticsearch, plugin コマンドにはパスが通っています。
- install のサブコマンドは --install では無いです
- kuromoji のリポジトリは、2015年夏あたりに引っ越しされ、公式に取り込まれていました
インストール終了後、Ctrl + d
で出る
ubuntu(ホスト)
$ sudo docker commit <container_name> ytyng/elasticsearch-head-kuromoji
$ sudo docker run -p 9200:9200 --name es2 -d ytyng/elasticsearch-head-kuromoji elasticsearch
パソコンから http://<server>:9200/
を見る
{
"name" : "Blur",
"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"
}
パソコンから http://<server>:9200/_plugin/head/
を見る
ちなみに、起動中の elasticksearch コンテナのシェルに入るには
ubntu(ホスト)
$ sudo docker exec -it es2 /bin/bash
django-haystack の人は注意
django-haystack 使ってる場合、Elasticsearch2だと動きません。
"type": "search_parse_exception",
"reason": "failed to parse search source. unknown search element [facets]",
が出ます。facets -> aggregate に変わったとのこと (シンタックスも変わってます)。