Rails和Solr:使用facet过滤行

时间:2014-01-07 20:11:45

标签: ruby solr faceted-search sunspot-rails

我在整数字段上进行分面搜索时遇到问题,这是该模型的关联记录的计数器缓存。基本上是:

Post.solr_search do
  facet(:comments_count) do
    row('No')  { with(:comments_count).less_than 1    }
    row('Yes') { with(:comments_count).greater_than 0 }
  end
...

问题是,我不知道如何过滤这些行,例如

# params[:comments_count] being either 'Yes' or 'No'
with(:comments_count, params[:comments_count]) # It obviously doesn't work like this
# or
with_facet(:comments_count).row params[:comments_count]

那只是废话代码,我试图说明我在寻找什么。顺便说一句,分面查询有效,它会在标题为“否”的条目下显示没有评论的帖子,在“是”标签下标注评论。不,我想按照这个标准进行过滤。

“谷歌算法”或文档都没有帮助我。

1 个答案:

答案 0 :(得分:0)

无法找到合适的解决方案,但猴子修补了这样:

Post.solr_search do
  facet(:comments_count) do
    row('No')  { with(:comments_count).less_than 1    }
    row('Yes') { with(:comments_count).greater_than 0 }
  end

  case params[:comments_count]
  when 'No'
    with(:comments_count).less_than 1
  when 'Yes'
    with(:comments_count).greater_than 0
  end