我有两个模型:'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'对象。我怎么能这样做?
答案 0 :(得分:1)
最简单的方法是为两个模型的索引添加一个属性:
has "1", :as => :sort_order, :type => :integer
字符串中的数字应该与每个型号不同。然后您的:order
参数变为:
:order => 'sort_order ASC, @relevance DESC'