在太阳黑子轨道的多模型搜索

时间:2015-10-20 10:22:58

标签: ruby-on-rails ruby sunspot-rails sunspot-solr

我的模特是

class Product < ActiveRecord::Base

has_many :category_products
has_many :categories , through: :category_products
has_many :product_tags
has_many :tags, through: :product_tags

我想搜索所有三个型号的类别,标签,产品。它工作正常,但问题是当我搜索类别和标签我想要到那里相关的产品。但我如何区分何时只搜索产品列和何时它的相关表格。

我的代码是

@search = Sunspot.search[Product,Category,Tag] do
    fulltext params[:search]
    paginate(:page => params[:page] || 1, :per_page => 3)
  end
  @products = @search.results

最后我想得到产品。

1 个答案:

答案 0 :(得分:1)

添加&#39; 类别&#39;和&#39; 标签&#39;进入您的产品搜索信息:

class Product < ActiveRecord::Base
  searchable do
    text :name
    text :categories do
      categories.map { |category| category.name }
    end
    text :tags do
      tags.map { |tag| tag.name }
    end
  end
end

@search = Sunspot.search(Product) do
  fulltext params[:search]
  paginate(:page => params[:page] || 1, :per_page => 3)
end
@products = @search.results

link:https://github.com/sunspot/sunspot

希望这有帮助!