I\'ve been using the searchkick gem with elasticsearch with no problems on a Rails 4.2.0 application. I have a single Video model using searchkick.
For some reason
Add below lines of code in config/initializers/elasticsearch.rb
Searchkick.client = Elasticsearch::Client.new(hosts: ["localhost:9200"], retry_on_failure: true, transport_options: {request: {timeout: 250}})
You can specify this according to Rails environment.
Typically after hours of struggling I found the answer minutes after posting the question...
As per https://github.com/ankane/searchkick/issues/382 I added an initializer with:
Searchkick.client = Elasticsearch::Client.new(hosts: ["localhost:9200"], retry_on_failure: true, transport_options: {request: {timeout: 250}})
which seems to have solved the problem. I'll report back if it recurs.
For me, the problem was with the missing port in the URL. ( I am using AWS elasticsearch and not running it on localhost. )
I changed
ENV['ELASTICSEARCH_URL'] = Rails.application.credentials.dig(:elasticsearch, :url)
to
ENV['ELASTICSEARCH_URL'] = Rails.application.credentials.dig(:elasticsearch, :url) + ':443'
This does not affect all my projects, so I am guessing this has to do with a newer release.