Determine your app’s Elasticsearch version

Determine your app’s Elasticsearch version and easily access that version’s docs

February 2, 2018

#elasticsearch #macos #rails

I often find myself searching for our Rails app’s Elasticsearch version. The exact Elasticsearch version is important as Elasticsearch’s API differs slightly from version to version.

If you can reach Elasticsearch’s API, run

curl --silent -XGET https://elasticsearch-domain.com:9200 | python -c "import sys, json; print json.load(sys.stdin)['version']['number']"

Replace elasticsearch-domain.com with our Elasticsearch instance’s domain.

Alternatively, if you’ve SSH access to any server in your Elasticsearch cluster, run

curl --silent -XGET http://localhost:9200 | python -c "import sys, json; print json.load(sys.stdin)['version']['number']"

Determine Elasticsearch gem in a Rails app using the elasticsearch-model gem

If your Rails app is using the elasticsearch-model gem, open a rails console

bundle exec rails production console

and run

version = Elasticsearch::Model.client.info["version"]["number"]
puts version

Determine Elasticsearch gem in a Rails app using the tire gem

If your Rails app is using the tire gem, open a rails console

bundle exec rails production console

and run

response = Tire::Configuration.client.get(Tire::Configuration.url)version = JSON.parse(response.body)
puts version

Access your Elasticsearch version’s API docs

Elasticsearch’s API differs from version to version. If you’re on MacOS, install the Dash app If very handy to quickly access documentation of any Elasticsearch version.

Source Code