【问题标题】:Thinking Sphinx order if attribute exists else ignore如果属性存在则思考狮身人面像的顺序,否则忽略
【发布时间】:2012-07-05 02:04:12
【问题描述】:

如果有多个具有验证级别的索引模型需要按其验证级别排序。

但我也有几个没有验证级别的模型。

ThinkingSphinx.search @search.q, :order => 'class_crc ASC, @relevance DESC, verification_level DESC', :page => page, :limit => limit, :classes => @search.types_as_models

问题是我可以通过验证级别对具有该属性的模型进行排名,但在没有验证级别的模型上会出错

index ground_core,ground_delta,user_core,user_delta: sort-by attribute 'verification_level' not found

带有verification_level的示例播放器define_index

    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 do
      indexes [first_name, last_name], :as => :name, :sortable => true    
      has created_at, updated_at
      set_property :delta => ThinkingSphinx::Deltas::ResqueDelta
    end

有没有办法在模型上排序,不在模型上时忽略?

【问题讨论】:

    标签: ruby-on-rails sorting activerecord grouping thinking-sphinx


    【解决方案1】:

    我的解决方案是通过在 define_index 块中添加不需要验证级别的模型来伪造验证级别

    has '0', :as => :verification_level, :type => :integer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      • 2014-10-03
      相关资源
      最近更新 更多