Ruby on rails rails中的Sunspot solr需要帮助来执行一些查询

Ruby on rails rails中的Sunspot solr需要帮助来执行一些查询,ruby-on-rails,solr,sunspot,Ruby On Rails,Solr,Sunspot,我的rails应用程序中有一个模型用户和列表。用户有许多列表,列表属于用户。我在用户表中也有一个属性名评级。我想要的是在列表模型中搜索关键字,并根据用户模型的评级属性对其排序 这就是我在清单模型中所做的 searchable do text :title, :default_boost => 3 text :description, :default_boost => 2 integer :category_id, :references =>

我的rails应用程序中有一个模型用户和列表。用户有许多列表,列表属于用户。我在用户表中也有一个属性名评级。我想要的是在列表模型中搜索关键字,并根据用户模型的评级属性对其排序

这就是我在清单模型中所做的

searchable do  
    text :title, :default_boost => 3  
    text :description, :default_boost => 2  
    integer :category_id, :references => Category  
    integer :subcategory_id, :references => Subcategory  
    string :zipcode  
    time :created_at  
        double :user do  
        user.rating  
    end  
end
这就是我试图搜索的方式

@search = Sunspot.search(Listing) do  
    keywords params[:q]  do   
        fields :title  
    end  
    order_by THIS IS WHERE I NEED HELP    
    paginate :page => params[:page], :per_page => 20  
end  

您需要将关键字和评级属性添加到listingsearachable方法中

class Listing < ActiveRecord::Base
  belongs_to :user
  searchable do
    text :keyword
    integer :rating { user.rating }
  end
end
有关更多示例,请参见

看看你的代码,你需要改变你的搜索方法

double :user do
  user.rating
end


对于您的评级,您将其定义为:user do…end when应该是:rating do…endHi Symana,非常感谢您的帮助。现在,我确切地知道我错过了什么。取而代之的是integer:rating{user.rating},我必须执行integer:rating do user.rating end,以防有人也在搜索它——
double :user do
  user.rating
end
double :rating do
  user.rating
end