ScalaからElasticsearchにアクセスするサンプル

VagrantVM上にElasticsearch環境を構築し、そこに対してScalaでアクセスするサンプルを作った。

作ったファイル

github.com

環境

Vagrant 1.7.2

VirtualBox 4.3.26

Mac OSX yosemite 10.10.3

環境構築

Elasticsearchは以下のリポジトリ内のelasticsearchを使った。設定済みなので楽

github.com

vagrant upしたら/sbin/mount.vboxsf: mounting failed with the error: No such deviceというエラーが出たので以下の対応を実施

ホスト側 $ vagrant plugin install vagrant-vbguest

ゲスト側 $ sudo yum -y install kernel kernel-devel

ホスト側 $ vagrant reload

これでlocalhost:9200でElasticsearchにアクセスできる。

Elasticsearchにインデックスとドキュメントタイプを作成

インデックスとドキュメントタイプを作成しドキュメントを登録

curl -XPOST 'http://localhost:9200/twitter/tweet/' -d '{ "user" : "John Doe", "message" : "trying out Elasticsearch" }'

インデックスを確認

curl 'localhost:9200/_cat/indices?v'

検索

curl -XGET 'localhost:9200/_search'

Scala側の実装

ScalaでElasticsearchにアクセスする部分は以下のライブラリを使った。

github.com

READMEが詳細なので説明は割愛。