Searchkick with ElasticSearch returns “Faraday::ConnectionFailed: execution expired”

旧街凉风 提交于 2019-12-02 13:10:15

问题


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 rake searchkick:reindex:all is now failing consistently with:

Reindexing Video... rake aborted! Faraday::ConnectionFailed: execution expired

I originally installed elasticsearch via brew install elasticsearch, which returns:

Warning: elasticsearch-1.3.4 already installed

Is it likely that my elasticsearch installation/database has become corrupted? If so, what is the best way to refresh it?

As per https://www.elastic.co/guide/en/elasticsearch/reference/1.4/indices-delete-index.html I tried curl -XDELETE 'http://localhost:9200/_all' but this doesn't resolve the error.

This problem occurs on my Mac, as well as Elastic Beanstalk when I deploy this code to AWS (both were previously working correctly).


回答1:


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.




回答2:


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.



来源:https://stackoverflow.com/questions/33565919/searchkick-with-elasticsearch-returns-faradayconnectionfailed-execution-expi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!