我正在使用rails 4开发一个职位门户。 我有搜索框,求职者可以搜索工作。目前我能够为职位和描述做到这一点,如下
scope :by_name_or_desc,lambda{|search| where(" title ilike (?) or description ilike(?)","%#{search}%","%#{search}%") if search.present?}
我想使用相同的搜索框来获取技能,其中搜索者可以使用技能搜索工作。我将skill_ids作为我的工作模型中的一列。这是阵列字段。我怎样才能修改上面的查询来做同样的事情。
我也尝试过这样做,
scope :by_name_or_desc,lambda{|search| where(" title ilike (?) or description ilike(?) or '#{search}' = ANY (skill_ids)","%#{search}%","%#{search}%") if search.present?}
答案 0 :(得分:1)
如果您使用PostgreSQL,则应该查看Full Text Search功能。否则,我建议您使用Elastic Search或Sphinx来表示此类内容。全文搜索不是RDBMS设计的。随着项目的发展,您的方法将成为一个令人头疼的问题。