コンユウメモ @kon_yu

作ったガラクタとか、旅行とかの話

elasticsearch local環境構築 for MacOS

検証環境

  • OS: Mac OSX10.10 yosemite
  • homebrewがインストール済みであること
  • Java実行環境が入っていること

elasticsearchのインストール

homebrewをアップデート

まずはhomebrew自体のアップデートを行い最新版のelasticsearchをインストールできるようにする

> brew update

elasticsearch本体のインストール

> brew install elasticsearch

起動確認

> elasticsearch
# 以下の様な感じのログが表示されて、エラーが出ななかったらOK
[2015-05-23 15:58:56,067][INFO ][node                     ] [Forbush Man] version[1.5.2], pid[1616], build[62ff986/2015-04-27T09:21:06Z]
[2015-05-23 15:58:56,068][INFO ][node                     ] [Forbush Man] initializing ...
[2015-05-23 15:58:56,099][INFO ][plugins                  ] [Forbush Man] loaded [analysis-kuromoji, marvel], sites [marvel, inquisitor]
[2015-05-23 15:58:58,368][INFO ][node                     ] [Forbush Man] initialized
[2015-05-23 15:58:58,368][INFO ][node                     ] [Forbush Man] starting ...
[2015-05-23 15:58:58,459][INFO ][transport                ] [Forbush Man] bound_address {inet[/127.0.0.1:9300]}, publish_address {inet[/127.0.0.1:9300]}
[2015-05-23 15:58:58,480][INFO ][discovery                ] [Forbush Man] elasticsearch_brew/KkxG2bXdQZ2xhr1PIImjmg
[2015-05-23 15:59:02,268][INFO ][cluster.service          ] [Forbush Man] new_master [Forbush Man][KkxG2bXdQZ2xhr1PIImjmg][Yusuke-no-MacBook-Pro.local][inet[/127.0.0.1:9300]], reason: zen-disco-join (elected_as_master)
[2015-05-23 15:59:02,334][INFO ][http                     ] [Forbush Man] bound_address {inet[/127.0.0.1:9200]}, publish_address {inet[/127.0.0.1:9200]}
[2015-05-23 15:59:02,335][INFO ][node                     ] [Forbush Man] started
[2015-05-23 15:59:02,993][INFO ][gateway                  ] [Forbush Man] recovered [5] indices into cluster_state

プラグインのインストール

デバッグプラグイン

それぞれ以下のコマンドでインストールする

> /usr/local/bin/plugin -install elasticsearch/marvel/latest
> /usr/local/bin/plugin -install polyfractal/elasticsearch-inquisitor

日本語形態素解析用のプラグイン

これを入れておかないと、日本語のキーワードで検索した際に正しくないものがヒットしてしまう場合がある (昔Namazuで日本語で検索すると関係ないキーワードがヒットしまったのを思い出すような検索

kuromojiは少しインストールが面倒で、インストールしたelasticsearch のバージョンに合わせて適切なプラグインのバージョンをインストールする必要がある

elasticsearchのバージョン確認

> elasticsearch -v
Version: 1.5.2, Build: 62ff986/2015-04-27T09:21:06Z, JVM: 1.8.0_05

この例だと、バージョンは1.5.2

kuromoji のページに飛び、elasticsearchのバージョンが1.5の場合はkuromojiの2.5.0が該当するpluginだとわかる f:id:kon_yu:20150525114702p:plain kuromoji2.5.0のインストールコマンド

> /usr/local/bin/plugin -install elasticsearch/elasticsearch-analysis-kuromoji/2.5.0

pluginがインストールされているか確認

elasticsearchを起動して、デフォルトのportである9200にアクセスする

コンソールから確認する方法

curl -XGET 127.0.0.1:9200/_cat/plugins
# ローカルサーバをlocalhostで引きたい場合は--ipv4オプションを付けること, こうしないとipv6の名前を引こうとしてエラーになる。詳細は調べてない   
# curl -XGET --ipv4 localhost:9200/_cat/plugins

Sligguth analysis-kuromoji 2.5.0 j                        
Sligguth marvel            1.3.1 j/s /_plugin/marvel/     
Sligguth inquisitor        NA    s   /_plugin/inquisitor/ 

senseから確認する方法

先ほどインスールしたplugin: marvelの機能senseを使ってインストールされているpluginを確認する

以下のURLにアクセスする http://localhost:9200/_plugin/marvel/sense/index.html

画像のようにコンソールを売ったようなコマンドを実行し、結果が表示されればOK f:id:kon_yu:20150525114706p:plain

ref: 実践!Elasticsearch