【问题标题】:Rails and Solr: filter by facet with rowsRails 和 Solr:按行过滤
【发布时间】:2014-01-07 20:11:44
【问题描述】:

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

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]

这只是废话,我试图说明我在寻找什么。顺便说一句,多面查询有效,它会将没有 cmets 的帖子置于“否”标签下,将带有 cmets 的帖子置于“是”标签下。不,我想按该标准进行过滤。

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

【问题讨论】:

    标签: ruby solr faceted-search sunspot-rails


    【解决方案1】:

    找不到合适的解决方案,但猴子像这样修补了它:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-04
      • 1970-01-01
      • 1970-01-01
      • 2016-04-15
      • 2019-09-03
      • 1970-01-01
      相关资源
      最近更新 更多