前回の記事では、Elasticsearchの基礎についてまとめました。 この連載の最終目標はRuby on Railsで検索や関連記事を実装することですが、まずこの環境を構築する方法についてまとめます。

また、あわせてElasticsearchの可視化ツールであるKibanaもインストールします。 Kibanaは開発ツールも付属しており、コンソールからAPIを気軽に試せるのでぜひインストールしておきましょう。

前提

この記事の内容は、Docker Composeによる基本的な環境構築の知識があることを前提としています。 過去にこれについてまとめたので、参考にしてみてください。

動作環境

この記事で利用するツールの各バージョンは次のとおりです。 バージョンによってプラグインのインストール方法などが変わる可能性もありますのでご注意ください。

  • Elasticsearch 5.1.1
  • Kibana 5.1.1

インストール方法

ElasticsearchとKibanaのインストールは、公式のDockerイメージを利用します。 イメージを指定するだけでインストールできるので便利です。

また、Elasticsearchにはあわせて日本語解析プラグインのkuromojiもインストールします。 ただ、Elasticsearchでは、プラグインのインストールはElasticsearchサーバからコマンドをとおして行なう必要があります。 このため、設定ファイルでentrypointを指定してシェルをとおして行なっています。

docker-compose.yml:

version: '2'
services:
  elasticsearch:
    entrypoint: /entrypoints/elasticsearch.sh
    image: elasticsearch
    ports:
      - 9200:9200
    volumes:
      - ./entrypoints:/entrypoints
  kibana:
    depends_on:
      - elasticsearch
    image: kibana
    ports:
      - 5601:5601

kuromojiをインストールするシェルの内容は次のとおりです。 Elasticsearchのサービスを起動する前にプラグインをインストールします。

entrypoints/elasticsearch.sh:

#!/bin/bash

elasticsearch-plugin install analysis-kuromoji

exec /docker-entrypoint.sh elasticsearch

また、このシェルにはホスト側から実行権限を与えておく必要があります。

$ chmod +x entrypoints/elasticsearch.sh

起動方法

以上で準備は完了となります。 起動は通常どおり次のコマンドで、これによりElasticsearchとKibanaが起動します。

$ docker-compose up

動作確認

Elasticsearchのポートとして9200を指定したので、curlコマンドでAPIを叩いてみます。 すると、JSON形式のレスポンスが得られると思います。

$ curl localhost:9200
{
  "name" : "hJZk58R",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "Ck01We22TC67oEByMjIkag",
  "version" : {
    "number" : "5.1.1",
    "build_hash" : "5395e21",
    "build_date" : "2016-12-06T12:36:15.409Z",
    "build_snapshot" : false,
    "lucene_version" : "6.3.0"
  },
  "tagline" : "You Know, for Search"
}

また、Kibanaへのアクセスはhttp://localhost:5601にアクセスすればよいです。

参考記事

おわりに

ここまでで、Elasticsearchでアプリケーションを開発する準備が整いました。 次回の記事ではRuby on Railsを用いてElasticsearchによる基本的な検索機能の実装について書いていきます。