如何使用sunspot solr对两个或多个字段使用group by子句进行搜索

时间:2012-10-05 13:27:03

标签: ruby-on-rails-3 sunspot mysql2 sunspot-rails

请任何人告诉我是否有可能使用太阳黑子solr在相关领域放置条件。我有四个型号。这就是品牌,部门,类别和product_details。 brands表包含id,name和Verified(flag)。部门包含id,name。类别包含id和名称。 product_details包含name,price,image_url,discount,brand_id,department id和category_id。

brand.rb

class Brand < ActiveRecord::Base
  has_many :product_details, :dependent=>:destroy
end

department.rb

class Brand < ActiveRecord::Base
  has_many :product_details, :dependent=>:destroy
end

category.rb

class Category < ActiveRecord::Base
  has_many :product_details, :dependent=>:destroy
end

product_detail.rb

class ProductDetail < ActiveRecord::Base
  set_primary_key :id
  belongs_to :department
  belongs_to :category
  belongs_to :brand
  searchable do
    text :name
    text :brand do
      brand.name
    end
    integer :department_id
    integer :category_id
    integer :brand_id
    string :department_id_str do
      department_id.to_s
    end
    string :category_id_str do
      category_id.to_s
    end
    string :brand_id_str do
      brand_id.to_s
    end
  end
end

product_details_controller.rb

def index
    @idproducts=ProductDetail.search do
        group :category_id_str, :brand_id_str, :department_id_str
    end
end

在product_details / index.html.erb

<% @idproducts.group(:category_id_str,:brand_id_str,:department_id_str).groups.each do |group| %>
    <% group.results.each do |result| %>
        <%= debug(result)%>
    <% end %>
<% end %> 

对于上面的代码,我得到错误的参数数量(3为1)错误

<% @idproducts.group([:category_id_str,:brand_id_str,:department_id_str]).groups.each do |group| %>
    <% group.results.each do |result| %>
        <%= debug(result)%>
    <% end %>
<% end %> 

对于上面的代码,我得到#&lt; Array:0x8a14ebc&gt;的未定义方法`to_sym'。错误。

我观察到控制器中的多列分组是成功的。但我要显示结果。请任何人告诉我如何显示多列分组结果。

请帮助我解决上述问题。

0 个答案:

没有答案