您应该观看此视频:http ://railscasts.com/episodes/278-search-with-sunspot
它会帮助你。
这是他使用的示例代码: 模型:article.rb
searchable do
  text :name, :boost => 5
  text :content, :publish_month
  text :comments do
    comments.map(&:content)
  end
  time :published_at
  string :publish_month
end
def publish_month
  published_at.strftime("%B %Y")
end
搜索算法:
@search = Article.search do
    fulltext params[:search]
    with(:published_at).less_than(Time.zone.now)
    facet(:publish_month)
    with(:publish_month, params[:month]) if params[:month].present?
  end
  @articles = @search.results
我不熟悉太阳黑子,但看起来您的错误(无法识别的字段)可以通过在模型中包含 :genre_id 来解决,如下所示:
searchable do
  integer :genre_id
  ...
end
所以你的新搜索看起来像:
@search = Community.search do  
  fulltext params[:search]
  with(:genre_id, params[:genre_id])
  paginate :page => params[:page], :per_page => 5
 end