ScalaからElasticsearchにアクセスするサンプル
VagrantでVM上にElasticsearch環境を構築し、そこに対してScalaでアクセスするサンプルを作った。
作ったファイル
環境
Vagrant 1.7.2
VirtualBox 4.3.26
Mac OSX yosemite 10.10.3
環境構築
Elasticsearchは以下のリポジトリ内のelasticsearchを使った。設定済みなので楽
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にアクセスする部分は以下のライブラリを使った。
READMEが詳細なので説明は割愛。