0

いくつかの条件に基づいていくつかの属性をフィルタリングしたいインデックスがあります。

以下の構造は完全に正常に機能しています

Class A
attr_accessible :vaild_date
belongs_to: B
define_index 'index_for_a' do
  indexes ...
  ...
  has B.C.plant_id, :as => :plant_id
end
end

class B
  has_many: C
end

class C
  attr_accessible :plant_id,:month_timestamps
end

現在、私の C クラスには多くの行があります。次の行にのみ plant_id を使用したい

C.month_timestamps = A.valid_date

これを達成するためのいくつかのアプローチを提案してください。thinking_sphinx を初めて使用するので、条件と句を適切に使用できません。

4

1 に答える 1

1

を追加

  #Assuming Class C is stored in db as Cs
  where "Cs.month_timestamps = valid_date"

このようにあなたのdefine_indexブロックに

define_index 'index_for_a' do
  indexes ...
  ...
  has B.C.plant_id, :as => :plant_id

  join B.C
  #Assuming Class C is stored in db as Cs
  where "Cs.month_timestamps = valid_date"
end

アップデート

CrazyDivによって提案された編集で回答を更新

アップデート

このようなことを試してください

  has  "IFNULL(Cs.plant_id,0)", :as => :plant_id
于 2013-11-08T07:35:26.287 に答える