【问题标题】:multiply facets in tire?轮胎中的多面?
【发布时间】:2014-06-10 14:13:10
【问题描述】:

使用 ROR 4.01、elasticsearch 和轮胎 gem。

文章模型

class Article
 belongs_to: region
 belongs_to: house
end

def self.search(params)
    tire.search(page: params[:page], per_page: 12) do
      query { string params[:query], default_operator: "AND" } if params[:query].present?
      filter :term, region_id: params[:region_id] if params[:region_id].present?
      filter :term, house_id: params[:house_id] if params[:house_id].present?

      facet "regions" do
        terms :region_id
      end

      facet "houses" do
        terms :house_id
      end

    end  
  end

文章控制器

def index
    if params[:query].present?
      @articles = Article.search(params)
    else
      @articles = Article.all
    end
end

文章索引视图

%h3 Regions
          %ul
          - @articles.facets['regions']['terms'].each do |facet|
            %li
              = link_to_unless_current Region.find(facet['term']).name, params.merge(region_id: facet['term'])
              - if params[:region_id] == facet['term'].to_s
                (#{link_to "remove", region_id: nil})
              - else
                (#{facet['count']})
          %h3 House Owners
          %ul
          - @articles.facets['houses']['terms'].each do |facet|
            %li
              = link_to_unless_current House.find(facet['term']).name, params.merge(house_id: facet['term'])
              - if params[:house_id] == facet['term'].to_s
                (#{link_to "remove", house_id: nil})
              - else
                (#{facet['count']})

根据地区或业主作品对文章进行过滤/分面。但不是两者兼而有之。它怎么能一起工作?

那么使用多面?那可能吗?

谢谢

remco

【问题讨论】:

    标签: ruby-on-rails elasticsearch tire


    【解决方案1】:

    tire is deprecated 并且当前 Elasticsearch 版本不支持,所以我从内存和这里的源代码中获取,但是...

    terms 应该接受一系列术语。

    因此,您应该能够创建包含这两个术语的构面:

      facet "houses_regions" do
        terms [:house_id, :region_id]
      end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      • 2013-09-26
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      相关资源
      最近更新 更多