読者です 読者をやめる 読者になる 読者になる

彼女からは、おいちゃんと呼ばれています

ウェブ技術や日々考えたことなどを綴っていきます

Rails + Elasticsearch + kuromoji のテストを Wercker で実行する

f:id:inouetakuya:20141103002159p:plain

Rails から Elasticsearch を使っているときのテストの書き方(elasticsearch-rails, RSpec) のつづきです。Rails から Elasticsearch を使っているときのテストを Wercker で実行するときに必要な設定をメモしておきます。

環境は下記のとおりです。

  • Elasticserch 1.3.1
  • analysis-kuromoji(ブラグイン)2.3.0

gem

box-kuromoji-elasticsearch

Wercker でテストするときには下記を使っています。kuromoji プラグイン入りを選ぶなら一択です。

wercker.yml にドキュメントどおりに書く。

services:
  - wantedly/kuromoji-elasticsearch@0.0.6

このとき下記の環境変数が与えられます。

WERCKER_ELASTICSEARCH_PORT: 9200
WERCKER_ELASTICSEARCH_HOST: "[DYNAMIC_IP_ADDRESS]"
WERCKER_ELASTICSEARCH_URL:  "[DYNAMIC_IP_ADDRESS]:9200"

config/initializers/elasticsearch.rb

werker で動かすときは Elasticsearch の URL は http://localhost:9200 ではないので、環境変数を利用してうまいことやります。

# config/initializers/elasticsearch.rb

# Connect to specific Elasticsearch cluster
elasticsearch_url = ENV['ELASTICSEARCH_URL'] || ENV['WERCKER_ELASTICSEARCH_URL'] || 'http://localhost:9200'
Elasticsearch::Model.client = Elasticsearch::Client.new(host: elasticsearch_url)

以上です。ではでは。

関連エントリー