Elasticsearch & Bonsai:Heroku 上的 IndexMissingException,在本地运行良好
Elasticsearch & Bonsai: IndexMissingException on Heroku, works fine locally
构建我的第一个 rails 应用程序并在 Heroku 上将 Elasticsearch 升级到 运行 时遇到问题。
本地工作完美。
在 Heroku 上我可以打开搜索页面,但是当我尝试执行搜索时出现以下错误:
Heroku 日志显示:
2015-05-18T12:05:15.969673+00:00 app[web.1]: ActionView::Template::Error ([404] {"error":"IndexMissingException[[homes] missing]","status":404}):
2015-05-18T12:05:15.969674+00:00 app[web.1]: 9: <% end %>
2015-05-18T12:05:15.969676+00:00 app[web.1]: 10:
2015-05-18T12:05:15.969677+00:00 app[web.1]: 11: <ul>
2015-05-18T12:05:15.969678+00:00 app[web.1]: 12: <% @homes.each do |home| %>
2015-05-18T12:05:15.969679+00:00 app[web.1]: 13: <li>
2015-05-18T12:05:15.969680+00:00 app[web.1]: 14: <h3>
2015-05-18T12:05:15.969682+00:00 app[web.1]: 15: <%= link_to home.name, controller: "homes", action: "show", id: home._id%>
2015-05-18T12:05:15.969683+00:00 app[web.1]: app/views/search/search.html.erb:12:in `_app_views_search_search_html_erb___1261310385184340853_69929402195100'
宝石:
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
gem 'bonsai-elasticsearch-rails', '~> 0.0.4'
搜索控制器:
class SearchController < ApplicationController
def search
if params[:q].nil?
@homes = []
else
@homes = Home.search params[:q]
end
end
end
搜索视图:
<h1>Homes Search</h1>
<%= form_for search_path, method: :get do |f| %>
<p>
<%= f.label "Search for" %>
<%= text_field_tag :q, params[:q] %>
<%= submit_tag "Go", name: nil %>
</p>
<% end %>
<ul>
<% @homes.each do |home| %>
<li>
<h3>
<%= link_to home.name, controller: "homes", action: "show", id: home._id%>
</h3>
</li>
<% end %>
</ul>
如有任何建议,我们将不胜感激!
问题类似于this issue。
解决方案涉及
- 运行 任务 highlighted here
- 确保
elasticsearch.rake
exists
- 最后如果 404 仍然碰巧使用
curl -XPOST http://account.region.bonsai.io/homes
手动创建索引
构建我的第一个 rails 应用程序并在 Heroku 上将 Elasticsearch 升级到 运行 时遇到问题。
本地工作完美。
在 Heroku 上我可以打开搜索页面,但是当我尝试执行搜索时出现以下错误:
Heroku 日志显示:
2015-05-18T12:05:15.969673+00:00 app[web.1]: ActionView::Template::Error ([404] {"error":"IndexMissingException[[homes] missing]","status":404}):
2015-05-18T12:05:15.969674+00:00 app[web.1]: 9: <% end %>
2015-05-18T12:05:15.969676+00:00 app[web.1]: 10:
2015-05-18T12:05:15.969677+00:00 app[web.1]: 11: <ul>
2015-05-18T12:05:15.969678+00:00 app[web.1]: 12: <% @homes.each do |home| %>
2015-05-18T12:05:15.969679+00:00 app[web.1]: 13: <li>
2015-05-18T12:05:15.969680+00:00 app[web.1]: 14: <h3>
2015-05-18T12:05:15.969682+00:00 app[web.1]: 15: <%= link_to home.name, controller: "homes", action: "show", id: home._id%>
2015-05-18T12:05:15.969683+00:00 app[web.1]: app/views/search/search.html.erb:12:in `_app_views_search_search_html_erb___1261310385184340853_69929402195100'
宝石:
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
gem 'bonsai-elasticsearch-rails', '~> 0.0.4'
搜索控制器:
class SearchController < ApplicationController
def search
if params[:q].nil?
@homes = []
else
@homes = Home.search params[:q]
end
end
end
搜索视图:
<h1>Homes Search</h1>
<%= form_for search_path, method: :get do |f| %>
<p>
<%= f.label "Search for" %>
<%= text_field_tag :q, params[:q] %>
<%= submit_tag "Go", name: nil %>
</p>
<% end %>
<ul>
<% @homes.each do |home| %>
<li>
<h3>
<%= link_to home.name, controller: "homes", action: "show", id: home._id%>
</h3>
</li>
<% end %>
</ul>
如有任何建议,我们将不胜感激!
问题类似于this issue。
解决方案涉及
- 运行 任务 highlighted here
- 确保
elasticsearch.rake
exists - 最后如果 404 仍然碰巧使用
curl -XPOST http://account.region.bonsai.io/homes
手动创建索引