2011-04-25 32 views
0

我用thinking_sphinx搜索,我试图让该字段是根据体重分组输出表(从set_property:field_weights)如何根据它们的重量对字段(在模板中)进行排序?

这define_block

define_index do 
    indexes status, title, content, manager, note, start_date, end_date 
    has created_at, updated_at, parent_id, organization_id 

    has user_id, :as => :user_id, :type => :integer 

    has '7', :as => :model_order, :type => :integer 

    set_property :field_weights => { 
     :title => 1, 
     :start_date => 2, 
     :user_id => 7 
    } 

    set_property :delta => true 
    end 

如何到现场进行排序(在模板中)取决于他们的体重?

回答

0

我不确定我是否理解Q,但似乎您正试图从视图中读取field_weights的配置... 我不知道如果thinking_sphinx有一个方法可以做到这一点,但我会做的是elsewere保存配置,并在你需要它使用它...

class YourModel 
    FieldWeights = { 
     :title => 1, 
     :start_date => 2, 
     :user_id => 7 
    } 
    # more code here.... 

    define_index do 
    indexes status, title, content, manager, note, start_date, end_date 
    has created_at, updated_at, parent_id, organization_id 

    has user_id, :as => :user_id, :type => :integer 

    has '7', :as => :model_order, :type => :integer 

    set_property :field_weights => YourModel::FieldWeights 

    set_property :delta => true 
    end 
end 

然后在您的视图中,可以使用YourModel :: FieldWeights在其权重的顺序显示的字段,例如:

YourModel::FieldWeight.invert.sort 
相关问题