[Grails] elasticsearch-grails-plugin を入れてみる 設定詳細

前回 elasticsearch-grails-plugin の導入部だけをやってみたが、今回はさらに詳細にやってみる。

client mode

前回にも書いたが、Config.groovy に
client mode として、”local”, “node”, “dataNode”, “transport” を設定できる。
各モードの詳細ここを参照
おおざっぱに
local : ローカル(起動インスタンス)のみのノード 
node : ノードとして起動するが、データはもたない
dataNode : データを保持するノード
transport : ノードとして起動せずに、マスタ側 elasticsearch と通信を専門とする

ここで、いくつか注意点がある。

elasticSearch.client.mode = ‘node’ の注意点

master 側のmulticastが有効じゃないと動かない
elasticsearch.yml に以下があるか確認

elasticSearch.client.mode = ‘dataNode’ の注意点

今度は、master 側のmulticastが無効でも動くが、無効にしている場合は
Config.groovy で
elasticSearch.discovery.zen.ping.unicast.hosts を指定しないといけない。

Domain の作成

Domain に以下をいれると、Elasticsearch 用のドメインとして認識される。

各プロパティーの内容も以下のように設定できる。
例えば、data / post は not analyzed にして、 kibana 用に calcDate には @timestamp という別名をつけたい場合は以下のようにする。




[Grails] elasticsearch-grails-plugin を入れてみる

BuildConfig.groovy に以下を追加して(20152/04/02 現在の最新版)

Config.groovy に以下を追加
これで、test の時は、local の メモリだけで動く Elasticsearch になり、
development は client ノードで動く
client ノードの時は、 参加する cluster.name が必要。

datastoreImpl は、

  • mongoDatastore
  • hibernateDatastore

の二つから選べるようだけど、mongoDatastore は、 MongoDB plulgin がないとダメっぽい。
この辺は使いいながら追々調べる。