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の応答を確認できますね。