Ruby on rails 在Sunspot/Solr中同时搜索多个Rails模型

Ruby on rails 在Sunspot/Solr中同时搜索多个Rails模型,ruby-on-rails,model,solr,sunspot,Ruby On Rails,Model,Solr,Sunspot,简单的问题,我如何使用Sunspot搜索多个模型?…我使用Sunspot和Rails,但我似乎找不到如何跨多个模型搜索。我是否需要创建一个单独的控制器,或者我可以使用带有索引操作的齿轮控制器 谢谢你的帮助 (旁注:我发现关于stackoverflow的一个问题与此非常类似,但他们没有发布他们的代码。因此,我为任何冗余表示歉意。) 我认为: <div class="side_bar_search"> <%= form_tag gears_path, :method =&g

简单的问题,我如何使用Sunspot搜索多个模型?…我使用Sunspot和Rails,但我似乎找不到如何跨多个模型搜索。我是否需要创建一个单独的控制器,或者我可以使用带有索引操作的齿轮控制器

谢谢你的帮助

(旁注:我发现关于stackoverflow的一个问题与此非常类似,但他们没有发布他们的代码。因此,我为任何冗余表示歉意。)

我认为:

<div class="side_bar_search">
    <%= form_tag gears_path, :method => :get do %>
      <p>
        <%= text_field_tag :search, params[:search] %>
        <%= submit_tag "Search", :name => nil %>
    <% end %>
</div> 

:get-do%>

零%>
以及以下模型

档位

class Gear < ActiveRecord::Base
  attr_accessible :title, :size, :price, :sub_category_id, :user_id, :image, :image_a, :remote_image_url
  belongs_to :user
  belongs_to :sub_category
  has_one :category, :through => :sub_category
  has_many :comments, :dependent => :destroy 
  require 'carrierwave/orm/activerecord'
  mount_uploader :image, GearpicUploader
  mount_uploader :image_a, GearpicUploader


  searchable do
    text :title, :size, :price #need to add sub-category, and User Name.  
  end...
class User < ActiveRecord::Base 
  attr_accessible :first_name, :last_name, :email, :password, :password_confirmation, :userimage, :remove_userimage
  has_secure_password
  has_many :gears
  has_many :comments, :dependent => :destroy 
  has_one :store, :dependent => :destroy
  before_save :create_remember_token
  require 'carrierwave/orm/activerecord'
  mount_uploader :userimage, UserpicUploader

   searchable do
     text :first_name, :last_name
   end...                    
class GearsController < ApplicationController
  def index
    @search = Gear.search do
        fulltext params[:search]
        paginate(page: params[:page])
    end

    @gears = @search.results
  end...
class Gear:子类别
有很多:注释,:依赖=>:销毁
需要“carrierwave/orm/activerecord”
mount_上传器:图像,GearpicUploader
挂载上传器:图像上传器,GearpicUploader
可搜索do
文本:title、:size、:price#需要添加子类别和用户名。
结束。。。
用户

class Gear < ActiveRecord::Base
  attr_accessible :title, :size, :price, :sub_category_id, :user_id, :image, :image_a, :remote_image_url
  belongs_to :user
  belongs_to :sub_category
  has_one :category, :through => :sub_category
  has_many :comments, :dependent => :destroy 
  require 'carrierwave/orm/activerecord'
  mount_uploader :image, GearpicUploader
  mount_uploader :image_a, GearpicUploader


  searchable do
    text :title, :size, :price #need to add sub-category, and User Name.  
  end...
class User < ActiveRecord::Base 
  attr_accessible :first_name, :last_name, :email, :password, :password_confirmation, :userimage, :remove_userimage
  has_secure_password
  has_many :gears
  has_many :comments, :dependent => :destroy 
  has_one :store, :dependent => :destroy
  before_save :create_remember_token
  require 'carrierwave/orm/activerecord'
  mount_uploader :userimage, UserpicUploader

   searchable do
     text :first_name, :last_name
   end...                    
class GearsController < ApplicationController
  def index
    @search = Gear.search do
        fulltext params[:search]
        paginate(page: params[:page])
    end

    @gears = @search.results
  end...
class用户:销毁
has_one:store,:dependent=>:destroy
保存前:创建\u记住\u令牌
需要“carrierwave/orm/activerecord”
mount_上传器:userimage,UserpicUploader
可搜索do
文本:名字,:姓氏
结束。。。
齿轮控制器

class Gear < ActiveRecord::Base
  attr_accessible :title, :size, :price, :sub_category_id, :user_id, :image, :image_a, :remote_image_url
  belongs_to :user
  belongs_to :sub_category
  has_one :category, :through => :sub_category
  has_many :comments, :dependent => :destroy 
  require 'carrierwave/orm/activerecord'
  mount_uploader :image, GearpicUploader
  mount_uploader :image_a, GearpicUploader


  searchable do
    text :title, :size, :price #need to add sub-category, and User Name.  
  end...
class User < ActiveRecord::Base 
  attr_accessible :first_name, :last_name, :email, :password, :password_confirmation, :userimage, :remove_userimage
  has_secure_password
  has_many :gears
  has_many :comments, :dependent => :destroy 
  has_one :store, :dependent => :destroy
  before_save :create_remember_token
  require 'carrierwave/orm/activerecord'
  mount_uploader :userimage, UserpicUploader

   searchable do
     text :first_name, :last_name
   end...                    
class GearsController < ApplicationController
  def index
    @search = Gear.search do
        fulltext params[:search]
        paginate(page: params[:page])
    end

    @gears = @search.results
  end...
class GearsController
此外,一个方便的宝石是


它与搜索服务器没有任何依赖关系。

不幸的是,如果您正在分页,并且Gear中有足够的结果,它将不会返回任何用户对象。我一直希望它既能得到结果,又能按相关性排序。@凯文,你能通过按创建日期排序以获得装备和用户的混合列表来解决这个问题吗?在进行全文搜索时,你可以使用order_by(:score,:desc)按分数对结果排序,这段代码应该存在于哪个文件中?我如何告诉太阳黑子索引这个?