Rails + Thinking Sphinx:在数组上搜索条件

时间:2011-06-23 14:24:56

标签: ruby-on-rails sphinx thinking-sphinx

我正在寻找一种方法来执行以下操作。 实际上,我正在搜索一些文章,当我启动搜索时,我将参数作为一个数组,即`params [:categories] = [“1”,“4”,“5”,“8”]

现在,在使用thinkingSphinx进行搜索时,我会执行以下操作

#article.rb
def self.adv_search(query, categories)
    Article.search(
      query, 
      :with => {:category =>  },
    )
end

启动搜索,如

adv_search(params[:q], params[:categories])

但我一直在获取一个空结果数组。任何人都知道如何TS管理数组?

1 个答案:

答案 0 :(得分:3)

如果category是一个整数或整数集合的属性(按照你的例子),那么你需要做的一件事就是确保你输入一个整数数组,而不是字符串。过滤器:

Article.search query, :with => {:category => categories.collect(&:to_i)}

请注意,这将返回包含任何类别的所有文章。如果category是整数集合,并且您希望文章具有所有这些类别,那么您应该使用:with_all而不是:with