如果多个索引模型的验证级别需要按其验证级别进行排序。
但我也有几个没有验证级别的模型。
ThinkingSphinx.search @search.q, :order => 'class_crc ASC, @relevance DESC, verification_level DESC', :page => page, :limit => limit, :classes => @search.types_as_models
问题是我可以通过verify_level对具有该属性的模型进行排名,但在没有verify_level的模型上出现错误
index ground_core,ground_delta,user_core,user_delta: sort-by attribute 'verification_level' not found
示例播放器define_index with verification_level
define_index do
indexes [first_name, last_name], :as => :name, :sortable => true
where "state = 1"
has created_at, updated_at, verification_level
set_property :delta => ThinkingSphinx::Deltas::ResqueDelta
end
示例用户define_index,不带verify_level
define_index do
indexes [first_name, last_name], :as => :name, :sortable => true
has created_at, updated_at
set_property :delta => ThinkingSphinx::Deltas::ResqueDelta
end
有没有办法对它在模型上进行排序,并在不存在时忽略?
答案 0 :(得分:2)
我的解决方案是在不需要它的模型上伪造验证级别,方法是在define_index块中添加它
has '0', :as => :verification_level, :type => :integer