思考狮身人面像的结果基于模型偏好

时间:2014-02-12 10:39:04

标签: ruby-on-rails thinking-sphinx

我有两个模型:'A'和'B',并且想要使用Thinking sphinx搜索两个模型中的对象,但是我想要所有模型'A'的结果然后'B'。我怎样才能做到这一点? 我将以下选项传递给sphinx查询

{:match_mode=>:extended, :sort_mode=>:extended, :star=>true, :order=>"@relevance DESC", :ignore_errors=>true, :populate=>true, :per_page=>10, :retry_stale=>true, :classes => [A,B]}

然后使用以下方式获取搜索结果:

ThinkingSphinx.search "*xy*", options

但是它给出了混合排序的结果,而我首先需要所有'A'对象。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

最简单的方法是为两个模型的索引添加一个属性:

has "1", :as => :sort_order, :type => :integer

字符串中的数字应该与每个型号不同。然后您的:order参数变为:

:order => 'sort_order ASC, @relevance DESC'