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 回答