Ruby on rails 如何使用太阳黑子solr(ROR)在两个表上执行搜索
我刚开始学习ROR,我需要帮助 我有两个表,我需要用太阳黑子solr搜索它们。搜索可能会查找公司和标题之类的内容,因此,如何使用sunspot solr ROR组织搜索两个表 第2.rb节 标题/_search.html.erbRuby on rails 如何使用太阳黑子solr(ROR)在两个表上执行搜索,ruby-on-rails,ruby-on-rails-3,solr,Ruby On Rails,Ruby On Rails 3,Solr,我刚开始学习ROR,我需要帮助 我有两个表,我需要用太阳黑子solr搜索它们。搜索可能会查找公司和标题之类的内容,因此,如何使用sunspot solr ROR组织搜索两个表 第2.rb节 标题/_search.html.erb 在变量@headsear中,您同时拥有两个对象:Heading对象和Section对象 如果要将这些结果分成两个变量,可以调用搜索方法两次: @headings = Heading.search {fulltext params[:search]} @sections
在变量@headsear中,您同时拥有两个对象:Heading对象和Section对象 如果要将这些结果分成两个变量,可以调用搜索方法两次:
@headings = Heading.search {fulltext params[:search]}
@sections = Section.search {fulltext params[:search]}
另一种解决方案是只搜索标题,并使用与小节的关系:
您需要将节数据索引到标题类中,如下所示:
标题.rb
在此之后,当节的名称与搜索参数匹配时,结果将包含所有与标题对象相关的内容
希望这有帮助
Sunspot.search Heading, Section do
fulltext params[:search]
end
def index
@sections = Section.all
@headings = Heading.all
@search = Sunspot.search(Heading, Section) do
fulltext params[:search]
end
@headsear = @search.results
end
def show
@se = Section.all
@sections = Section.all
@headings = Heading.find(params[:id])
@sections = Section.find(params[:id])
end
<%= form_tag headings_path, :method => :get do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>
@headings = Heading.search {fulltext params[:search]}
@sections = Section.search {fulltext params[:search]}
class Heading < ActiveRecord::Base
belongs_to :section
searchable do
text :name
text :address
text :phone
text(:section_name) { section.name }
end
end
Sunspot.search Heading, Section do
fulltext params[:search]
end