【发布时间】:2015-03-20 07:00:07
【问题描述】:
我正在尝试使用 Sunspot(Rails Solr gem)使用我在模型中声明的枚举来确定结果范围。我的模型的相关部分如下所示:
searchable do
text :tag_list
boolean :approved
integer :perspective
time :created_at
end
enum perspective: [ :not_applicable, :front, :side_front, :side, :side_back, :back, :above, :below ]
我的控制器中的搜索块如下所示:
def index
//skip scoping if perspective is nil
params[:perspective] ||= []
@search = Upload.search do
with :approved, true
with :perspective, params[:perspective]
fulltext params[:tag]
fulltext params[:search] do
minimum_match 1
end
paginate page: params[:page], per_page: 30
end
@uploads = @search.results
@query = params[:search]
end
我用来收集参数的链接如下所示:
<%= link_to upload.perspective.humanize, search_index_path(perspective: Upload.perspectives[upload.perspective]), class: "perspective" %>
基本上,我正在尝试进行设置,以便在确定范围后返回所有这些标准的任意组合的结果。我已经让它与基于文本的搜索条件一起使用,但是按角度确定范围不起作用。搜索只返回 0 的所有结果,而没有返回任何其他值的结果。我是否遗漏了一些关于 Sunspot/Solr 如何与枚举一起使用的信息?当我执行诸如 Upload.where(perspective: 1) 之类的查询时,我得到了正确的结果,所以我不确定为什么这不起作用。
提前致谢。
【问题讨论】:
标签: ruby-on-rails ruby solr enums sunspot