ローカル環境のWindowsにElasticsearchをインストール

ローカル環境のWindows(7)にElasticsearchをインストールしてみたのでメモ。

- Windows 7 Home Premium SP1
- [Elasticsearch](https://www.elastic.co/products/elasticsearch) 1.5.2
  - [elasticsearch-head](https://github.com/mobz/elasticsearch-head)
  - [Marvel (Sense)](https://www.elastic.co/products/marvel)
  - [Kuromoji](https://github.com/elastic/elasticsearch-analysis-kuromoji) 2.5.0
- [Java (jPortable)](http://portableapps.com/apps/utilities/java_portable) 8  
  ※ 個人的にすべてDropboxに入れてポータブルっぽくしたのでjPortableを使用

## Javaのインストール（入っていなければ）

[PortableApps.comのjPortable 64-bit](http://portableapps.com/apps/utilities/java_portable)をダウンロードしてインストール（解凍）。
（64bit版はダウンロードページ下段）
インストール先の参考として以下のフォルダへ。

```txt:インストール先の例
C:\Dropbox\Java64
```

#### Javaのパスを通す

<kbd>スタート</kbd> > <kbd>コンピュータ</kbd> を右クリックし、<kbd>プロパティ</kbd>を開く。
<kbd>システムの詳細設定</kbd>(左側のメニュー内)を開き、<kbd>環境変数(N)...</kbd>ボタンをクリック。
「ユーザー変数」のところで<kbd>新規(N)...</kbd>をクリックし、以下のように設定。

- 変数名(N)：**JAVA_HOME**
- 変数値(V)：**C:\Dropbox\Java64** (jPortableのインストールフォルダ)

設定したら、ログオフ > ログイン してパスを有効化しておくと良い。

## Elasticsearchのインストール

[公式サイトのダウンロードページ](https://www.elastic.co/downloads/elasticsearch)からZip版をダウンロード。
インストール先の参考として以下のフォルダへ。

```txt:インストール先の例
C:\Dropbox\elasticsearch
```

## Elasticsearchをサービスとして登録＆起動

サービス登録しなくても使えるけど、起動中にコマンドプロンプトを開いたままにするのが面倒なのでサービスにしておく。

コマンドプロンプトを開き、以下のコマンドを入力し<kbd>Enter</kbd>。

```bat
C:\Dropbox\elasticsearch\bin\service install
```

これでサービスとして登録できる。
サービスは自動起動じゃないので、使う時は毎回以下のコマンドで起動する。
:bulb: *起動に失敗する場合は、Javaのパスと、ポート「9200」が使用済みでないかを確認。*

```bat
C:\Dropbox\elasticsearch\bin\service start
```

サービス関連のその他のコマンドは以下で確認できる。
http://www.elastic.co/guide/en/elasticsearch/reference/1.5/setup-service-win.html

これで起動したら、ブラウザで http://localhost:9200 を開き、以下のような文字が出たらOK。

```js
{
    status: 200,
    name: "Storm",
    cluster_name: "elasticsearch",
    version: {
        number: "1.5.2",
        build_hash: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        build_timestamp: "2015-04-27T00:00:00Z",
        build_snapshot: false,
        lucene_version: "4.10.4"
    },
    tagline: "You Know, for Search"
}
```


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

#### :pushpin: [elasticsearch-head](https://github.com/mobz/elasticsearch-head)

インデックス等の状態確認用プラグイン。
以下のコマンドでインストール。

```bat
C:\Dropbox\elasticsearch\bin\plugin -i mobz/elasticsearch-head
```

インストール後Elasticsearchを再起動したら、以下のURLで使用可能。
http://localhost:9200/_plugin/head/

#### :pushpin: [Marvel](https://www.elastic.co/products/marvel)

Marvelは基本有料だけど、開発用途ならずっと無料で使える。
一部の機能であるSenseは、Elasticsearchの検索コマンドの試行にとても便利。
以下のコマンドでインストール。

```bat
C:\Dropbox\elasticsearch\bin\plugin -i elasticsearch/marvel/latest
```

インストール後Elasticsearchを再起動したら、以下のURLで使用可能。
http://localhost:9200/_plugin/marvel/sense/

#### :pushpin: [Kuromoji](https://www.elastic.co/products/marvel)

日本語辞書を備えた形態素解析プラグインで、日本語を扱うならほぼ必須。
以下のコマンドでインストール。

```bat
C:\Dropbox\elasticsearch\bin\plugin -i elasticsearch/elasticsearch-analysis-kuromoji/2.5.0
```


## 軽く設定

以下の設定をしておくと良いかもしれない。
設定ファイルは `C:\Dropbox\elasticsearch\config\elasticsearch.yml` で、最後の行に追記する。

```yaml:elasticsearch.yml
# Marvelが常にログを取りつづけて肥大化するためオフにする
marvel.agent.enabled: false

# デフォルトの形態素解析をKuromojiにする
index.analysis.analyzer.default.type: custom
index.analysis.analyzer.default.tokenizer: kuromoji_tokenizer
```

以上です。