我使用Rails 3.2.8和postgres。我们假设我有一个可以按类型和标签过滤的Book模型。我很好奇如何为搜索结果中显示的每个过滤器(类型,标签,...)实现构面计数。 ui看起来与此类似:
Book Type
Banking(30)
IT(20)
Tags
business(20)
rspec(2)
rails(3)
我一直在谷歌搜索试图找不到使用Sphinx,Solr或任何其他搜索引擎的方法。可以通过postgres或activerecord完成吗?
答案 0 :(得分:2)
type_facet = Book.select('type, count(*)').where(:type => ["Banking","IT"]).group(:type)
tag_facet = Book.select('tag, count(*)').where(:tag => ["business","rspec","rails"]).group(:tag)
在你的前端迭代上述方面..
答案 1 :(得分:0)
您正在寻找类似的东西吗?
Book Type
Banking (<%= Book.where(:type => "Banking").count %>)
IT (<%= Book.where(:type => "IT").count %>)
Tags
business (<%= Book.where(:tag => "business").count %>)
rspec (<%= Book.where(:tag => "rspec").count %>)
rails (<%= Book.where(:tag => "rails").count %>)
答案 2 :(得分:0)
Book.count(:all, :group => 'type')
Book.count(:all, :group => 'tag')
我认为它会为你返回计数和每个类型/标签。