0
如何使用某些思维狮身人面像指标的条件?对于一些原因,我需要这样的条件:思考狮身人面像的某些指标的条件
...
has values(:id), **where(this_value.type_id => 1)**
has values(:id), **where(this_value.type_id => 2)**
如何使用某些思维狮身人面像指标的条件?对于一些原因,我需要这样的条件:思考狮身人面像的某些指标的条件
...
has values(:id), **where(this_value.type_id => 1)**
has values(:id), **where(this_value.type_id => 2)**
要做到这样的事情,你需要得到你的手脏有位SQL的。有一些依赖于你使用什么数据库拼接命令......首先,这里是PostgreSQL的一个例子:
has "array_to_string(array_remove(array_agg(CASE WHEN values.type_id = 1 THEN values.id ELSE NULL END CASE), NULL), ',')",
:as => :first_value_ids, :type => :integer, :multi => true
在MySQL中,它可能看起来更像是这样的:
has "GROUP_CONCAT((CASE WHEN values.type_id = 1 THEN values.id ELSE NULL END CASE) SEPARATOR ',')",
:as => :first_value_ids, :type => :integer, :multi => true
如果你还没有使用Thinking Sphinx v3,那么选项应该变成:as => :first_value_ids, :type => :multi
。
这些查询尚未经过测试,我建议您确认它们是否正常工作,但理论是正确的。
另外,如果你不是在一个正常的方式索引定义使用值协会其他地方,你需要确保有一个与你的索引定义中的以下联接:
join values