全文検索エンジンElasticsearchを試してみたくていろいろやってたんですが、割とみんな本番環境への構築方法は書いてもローカル構築の方法はあまりみあたらなかったので書いてみました。
OSX
homebrewで。
$ brew install elasticsearch
これで終わりです。他になにかしたかったですか? これだけです!
パス通す
Elasticsearchにはpluginコマンド使ったり、起動にelasticsearchコマンド使うんですけど、その辺パスが通ってないのでリファレンスみただけだと「?」ってなります。通しましょう。
homebrewでいれると「/usr/local/Celler/****」の下にインストールされていくので探します。
「/usr/local/Cellar/elasticsearch/1.3.0/bin」とかがバイナリのパスになってると思います。1.3.0はバージョンによって変わるので適宜読み替えてください。
これを.zshrcや.bashrcとかでパスを通してあげます。全体に通すなら/etc/bashrcとかに書いてもいいですがそこは好みで。
export ELASTICPATH=/usr/local/Cellar/elasticsearch/1.3.0/bin
export PATH=$PATH:$ELASTICPATH
書いたらsourceしましょう。
source ~/.zshrc
source ~/.bashrc
設定する
設定ファイルは以下にありました。
- /usr/local/Cellar/elasticsearch/1.3.0/config/elasticsearch.yml
ログのパス、クラスタ名、ノード名とか設定できるみたいです。この辺りは今回ローカルでしかつかわないんでデフォルトで。必要になったら追記します。詳しいことはまた別記事で。
プラグインいれる
pluginコマンドでできます。なんかいろいろあるみたいです。
プラグインページはここからいろいろ。
インストールはgitの短縮アドレスを叩くだけでいけるみたい。便利ですね。
$ plugin --install ******
起動
起動はelasticsearchコマンドで。
$ elasticsearch
[2014-09-25 12:23:01,360][INFO ][node ] [Veil] version[1.3.0], pid[57072], build[1265b14/2014-07-23T13:46:36Z]
[2014-09-25 12:23:01,361][INFO ][node ] [Veil] initializing ...
[2014-09-25 12:23:01,375][INFO ][plugins ] [Veil] loaded [analysis-kuromoji], sites []
[2014-09-25 12:23:03,919][INFO ][node ] [Veil] initialized
[2014-09-25 12:23:03,920][INFO ][node ] [Veil] starting ...
[2014-09-25 12:23:04,013][INFO ][transport ] [Veil] bound_address {inet[/127.0.0.1:9300]}, publish_address {inet[/127.0.0.1:9300]}
[2014-09-25 12:23:04,047][INFO ][discovery ] [Veil] elasticsearch_srockstyle/4QyazfZ_RoGQ_vHw1N4fDQ
[2014-09-25 12:23:07,063][INFO ][cluster.service ] [Veil] new_master [Veil][4QyazfZ_RoGQ_vHw1N4fDQ][srockstyle-no-MacBook-Pro.local][inet[/127.0.0.1:9300]], reason: zen-disco-join (elected_as_master)
[2014-09-25 12:23:07,088][INFO ][http ] [Veil] bound_address {inet[/127.0.0.1:9200]}, publish_address {inet[/127.0.0.1:9200]}
[2014-09-25 12:23:07,088][INFO ][node ] [Veil] started
[2014-09-25 12:23:07,110][INFO ][gateway ] [Veil] recovered [0] indices into cluster_state
なんかぞろぞろでてきました。
アクセスしてみる
みんな大好きcurlコマンドで。
$ curl -XGET 'http://localhost:9200'
これ、コンソールに9300ってでるからそっちかなと思うとエラー大発生したんでなにかとおもったんですが、9200が正解みたいです。
Jsonがもどればオッケーです!
{
"status" : 200,
"name" : "Arkady Rossovich",
"version" : {
"number" : "1.3.0",
"build_hash" : "1265b1454eee7725a6918f57415c480028700fb4",
"build_timestamp" : "2014-07-23T13:46:36Z",
"build_snapshot" : false,
"lucene_version" : "4.9"
},
"tagline" : "You Know, for Search"
}
ではよいElasticsearchライフを!