当前位置:  开发笔记 > 后端 > 正文

在Rails 4.1中使用Searchkick gem在Elasticsearch中设置Facets

如何解决《在Rails4.1中使用Searchkickgem在Elasticsearch中设置Facets》经验,为你挑选了1个好方法。



1> thecrentist..:

我终于通过以下方式实现了它.不确定它是否是最好的方法,但它的工作原理!希望它有所帮助,如果您有改进或建议,请随时告诉我.

# app/models/movie.rb
def self.facets_search(params)
  query = params[:query].presence || "*"
  conditions = {}
  conditions[:year] = params[:year] if params[:year].present?

  movies = Movie.search query, where: conditions, 
    facets: [:year], 
    smart_facets: true, page: params[:page], suggest: true, highlight: true,
    per_page: 10
  movies
end

.

# app/controllers/movies_controller.rb
def index
  @movies = Movie.facets_search(params)
end

.

# app/views/movies/index.html.erb
<% if @movies.facets["year"]["terms"].present? %>
    
    <% @movies.facets["year"]["terms"].each do |filter| %>
  • <%= link_to "#{filter["term"]} (#{filter["count"]})", "/movies?year=#{filter["term"]}" %>
  • <% end %>
<% end %>

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有