Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Heroku上部署ElasticSearch,配备轮胎和;盆景_Ruby On Rails_Deployment_Heroku_Search Engine_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Ruby On Rails,Deployment,Heroku,Search Engine,elasticsearch" /> elasticsearch,Ruby On Rails,Deployment,Heroku,Search Engine,elasticsearch" />

Ruby on rails 在Heroku上部署ElasticSearch,配备轮胎和;盆景

Ruby on rails 在Heroku上部署ElasticSearch,配备轮胎和;盆景,ruby-on-rails,deployment,heroku,search-engine,elasticsearch,Ruby On Rails,Deployment,Heroku,Search Engine,elasticsearch,我正在尝试设置新的heroku插件,但直到现在我可以在本地开发机器上运行搜索,只要部署在heroku上,相同的搜索就会自动失败,或者更好,Rails logger不会记录任何内容,而我会收到500个内部服务器错误。这是查询失败期间的相关Heroku日志(未发现明显错误): 我正在寻找一些关于如何解决这个问题的建议。例如,我在盆景初始化器config/initializers/Bonsai.rb上设置Tire.configure{logger'elasticsearch.log',:level=>

我正在尝试设置新的heroku插件,但直到现在我可以在本地开发机器上运行搜索,只要部署在heroku上,相同的搜索就会自动失败,或者更好,Rails logger不会记录任何内容,而我会收到500个内部服务器错误。这是查询失败期间的相关Heroku日志(未发现明显错误):

我正在寻找一些关于如何解决这个问题的建议。例如,我在盆景初始化器config/initializers/Bonsai.rb上设置
Tire.configure{logger'elasticsearch.log',:level=>debug'}
,如下所示:

Tire.configure { logger 'elasticsearch.log', :level => 'debug' }
if ENV['BONSAI_INDEX_URL']
  Tire.configure do
    url "http://index.bonsai.io"
  end
  BONSAI_INDEX_NAME = ENV['BONSAI_INDEX_URL'][/[^\/]+$/]
else
  app_name = Rails.application.class.parent_name.underscore.dasherize
  app_env = Rails.env
  BONSAI_INDEX_NAME = "#{app_name}-#{app_env}"
end
但它会登录到一个文件上,这对本地用户很好,但在部署后无法访问

Bonsai ElasticSearch是一款全新的测试插件,所以我想知道你们当中是否有人已经在Heroku上成功开发过该插件,并能给我一些反馈和建议

更新

正在将记录器$stdout,:level=>“debug”设置到轮胎中。最后配置heroku可以在搜索失败时记录一些内容:

2012-06-04T21:36:26+00:00 heroku[router]: GET gitwatcher.com/categories?utf8=%E2%9C%93&query=Asynchronous+Web+Frameworks dyno=web.1 queue=0 wait=0ms service=32ms status=500 bytes=728
2012-06-04T21:36:26+00:00 heroku[nginx]: 93.34.212.216 - - [04/Jun/2012:21:36:26 +0000] "GET /categories?utf8=%E2%9C%93&query=Asynchronous+Web+Frameworks HTTP/1.1" 500 728 "http://gitwatcher.com/categories" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0" gitwatcher.com
2012-06-04T21:36:26+00:00 app[web.1]: # 2012-06-04 21:36:26:387 [_search] (["123456789"])
2012-06-04T21:36:26+00:00 app[web.1]: #
2012-06-04T21:36:26+00:00 app[web.1]: curl -X GET "http://index.bonsai.io/123456789/category/_search?load=true&pretty=true" -d '{"query":{"query_string":{"query":"Asynchronous Web Frameworks"}}}'
2012-06-04T21:36:26+00:00 app[web.1]:
2012-06-04T21:36:26+00:00 app[web.1]: # 2012-06-04 21:36:26:387 [200] (1 msec)
2012-06-04T21:36:26+00:00 app[web.1]:

。。。请查看有关仅为跟踪目的而向

开放的问题的更多信息, 我将在这里(cat和past)报告我发布的决议:

。。。事实上,如果您只是运行rake-environment-tire:import CLASS='Category'FORCE=true,它在Heroku/Bonsai.io上不起作用,因为盆景授权操作:

  2012-06-11T20:39:30+00:00 app[run.1]: curl -X DELETE http://index.bonsai.io/my-fake-index-11223344
  2012-06-11T20:39:30+00:00 app[run.1]: # 2012-06-11 20:39:30:749 [401]
  2012-06-11T20:39:30+00:00 app[run.1]: #
  2012-06-11T20:39:30+00:00 app[run.1]: # "{\"error\": \"Not authorized: Some endpoints are admin-only, ask support@onemorecloud.com.\"}\n"
如果要重置/重新索引最终脏数据,唯一的方法是删除盆景加载项并重新创建:

  heroku addons:remove bonsai:test
  heroku addons:add bonsai:test
也就是说,我确实有一个肮脏的数据表明:

  BSON::InvalidObjectId (illegal ObjectId format: LAm-hNglS5mbrMzDlVVHCQ):
  app/controllers/categories_controller.rb:25:in `index'

如果您需要完整的gem堆栈来与其他情况进行比较,这里是:

仅用于跟踪目的, 我将在这里(cat和past)报告我发布的决议:

。。。事实上,如果您只是运行rake-environment-tire:import CLASS='Category'FORCE=true,它在Heroku/Bonsai.io上不起作用,因为盆景授权操作:

  2012-06-11T20:39:30+00:00 app[run.1]: curl -X DELETE http://index.bonsai.io/my-fake-index-11223344
  2012-06-11T20:39:30+00:00 app[run.1]: # 2012-06-11 20:39:30:749 [401]
  2012-06-11T20:39:30+00:00 app[run.1]: #
  2012-06-11T20:39:30+00:00 app[run.1]: # "{\"error\": \"Not authorized: Some endpoints are admin-only, ask support@onemorecloud.com.\"}\n"
如果要重置/重新索引最终脏数据,唯一的方法是删除盆景加载项并重新创建:

  heroku addons:remove bonsai:test
  heroku addons:add bonsai:test
也就是说,我确实有一个肮脏的数据表明:

  BSON::InvalidObjectId (illegal ObjectId format: LAm-hNglS5mbrMzDlVVHCQ):
  app/controllers/categories_controller.rb:25:in `index'

如果您需要完整的gem堆栈来与其他情况进行比较,那么它就是:

很糟糕,但是您应该能够用
Tire.configure{@logger=Rails.logger}
撬开记录器,它似乎是Heroku不喜欢的方式:查看日志我的错误-忘记了Tire的记录器类不是标准的ruby记录器类。Heroku应该为你记录你的stdout/stderr,所以我会尝试Tire.configure{logger$stdout}现在Heroku正在记录,se更新对于后代来说,盆景的轮胎设置现在简单多了:很可怕,但是你应该能够用
Tire.configure{@logger=Rails.logger}撬开记录器
Heroku似乎不喜欢这样:查看日志我的错误-忘记了tire的Logger类不是标准的ruby Logger类。Heroku应该为您记录您的stdout/stderr,所以我会尝试Tire.configure{logger$stdout}现在Heroku正在记录,se更新对于后代来说,Bonsai的轮胎设置现在简单多了: