elasticsearch-railsで任意のリクエストを送れるperform_requestメソッドが便利
elasticsearch-railsのソースを軽く読んでいたら、任意のリクエストを送れるperform_requestという便利メソッドがあったので紹介します。
Elasticsearch / Rails / Ruby
Blog::PostがElasticsearch::Modelをincludeしているとして
Blog::Post.__elasticsearch__.client.perform_request(:get, 'blog-posts/_count').body
=> {"count"=>2, "_shards"=>{"total"=>5, "successful"=>5, "failed"=>0}}という感じで任意のHTTPリクエストを送れます。
Awesome Printを使えば結果も見やすくなります。
ap Blog::Post.__elasticsearch__.client.perform_request(:get, 'blog-posts/_count').body
{
"count" => 2,
"_shards" => {
"total" => 5,
"successful" => 5,
"failed" => 0
}
}メソッドのインタフェースは
(Object) perform_request(method, path, params = {}, body = nil)となっています。ドキュメントはこちら。
これでいちいちcurlやMarvelに切り替えなくてもサクッとElasticsearchの応答を確認できますね。