1

検証レベルでソートする必要がある検証レベルを持つ複数のインデックス付きモデルがある場合。

しかし、検証レベルのないモデルもいくつかあります。

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

問題は、その属性を持つモデルではverification_levelでランク付けできるが、verification_levelのないモデルではエラーになることです

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

プレイヤーの例 define_index と validation_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 の検証レベルなし

    define_index do
      indexes [first_name, last_name], :as => :name, :sortable => true    
      has created_at, updated_at
      set_property :delta => ThinkingSphinx::Deltas::ResqueDelta
    end

モデル上にある場合はソートし、そうでない場合は無視する方法はありますか?

4

1 に答える 1

2

私の解決策は、define_index ブロックに追加することで、それを必要としないモデルの検証レベルを偽造することでした。

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

于 2012-07-31T21:49:38.330 に答える