gpt4 book ai didi

ruby-on-rails - 使用Tire&Bonsai.io在Heroku上部署ElasticSearch

转载 作者:行者123 更新时间:2023-12-02 23:41:50 25 4
gpt4 key购买 nike

我正在尝试安装新的Bonsai ElasticSearch heroku附加组件,但是直到现在我都可以在本地开发机器上运行搜索,一旦将其部署在Heroku上,该搜索就会自动失败,或者更好,Rails logger不会记录日志在收到 500内部服务器错误时发生任何事情。这是查询失败期间的相关Heroku日志(未发现明显错误):https://gist.github.com/2867221

我正在寻找有关如何解决该问题的建议。例如,我在Bonsai初始化程序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上成功地尝试过这种体验,并且可以给我反馈和一些建议。

更新

设置logger logger $ stdout,:level =>'debug'到Tire.configure中,最后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]:

...请查看更多有关 https://github.com/karmi/tire/issues/365的问题

最佳答案

仅出于跟踪目的,
我将在此报告(cat&past)我在GitHub Tire issues上发布的分辨率:

DEFINETLY WORKS BY:
1) dropping out `to_indexed_json` from Category MongoID model ( at the opposit of README indication )
2) removing and re-adding Bonsai.io Heroku add-on
3) reindexing ElasticSearch by running `heroku run:detached rake environment tire:import CLASS='Category'`

...实际上,如果您只运行rake环境轮胎:import CLASS ='Category'FORCE = true,则由于Bonsai授权操作,它在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堆栈以与其他情况进行比较,则为: https://gist.github.com/2912881

关于ruby-on-rails - 使用Tire&Bonsai.io在Heroku上部署ElasticSearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10878526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com