0

我在 Ruby on Rails 的全文搜索中使用 sunspot_rails gem,
我将布尔字段('show_facet')添加到我的模型产品和 solr 索引
然后我想做下一步:

  • 如果 'show_facet' == true 然后在搜索列表和构面列表中显示产品
  • 如果 'show_facet' == false 则仅在搜索列表中显示产品

我阅读了所有文档、论坛和 api,但我找不到这个问题的答案 我可以
用太阳黑子做这个吗?

型号代码
可搜索的
    字符串:关键字,多个:true    
    字符串:状态
    布尔值:显示
    布尔值:show_facet
    时间:updated_at
    文本:keyword_long,存储:true
    文本:jtitle,存储:true
    整数:id
    整数:company_id
  结尾


控制器

  定义显示
    @product_search = OpenStruct.new(params[:product_search])
    @search = search_plain
  结尾

  私人的

  def search_plain
    basic_search 做 |搜索|
      search.fulltext(@product_search.fulltext) 做
        字段 *(%w[jtitle keyword_long])
        突出显示:keyword_long
        突出显示:jtitle
      结尾
    结尾
  结尾

  def basic_search
    Product.solr_search 做 |搜索|
      产量搜索
      search.with(:show, true)
      search.order_by(:random)
      search.paginate 页面:params[:page],per_page:10
      search.with(:keywords).all_of(@product_search.keywords)
      search.facet:关键字
    结尾
  结尾

我需要在 facet(:keywords) 中仅包含 show_facet = true 的产品方面,但在搜索中显示所有产品(show_facet true 或 false)

4

0 回答 0