如何在思考 - 狮身人面像搜索查询中添加条件?

时间:2012-04-01 16:18:16

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

我有以价格为属性的产品型号。

此查询工作正常,但需要修改一些内容。

  @products = Product.search(params[:query], :with => {:price => (params[:price_start].to_s.to_i..params[:price_end].to_s.to_i).to_a}, :page => params[:page], :per_page => 16)

我有一些预定义的价格范围,目前的价格范围是:

  • 1-100美元
  • 100-300美元
  • 300-600美元
  • 600+ Dollars

问题是

:with => {:price => (params[:price_start].to_s.to_i..params[:price_end].to_s.to_i).to_a}

在(1-100),(100-300),(300-600)的情况下工作正常。但是如何过滤600多个范围。如何传递查询:

 :with => {:price > (params[:price_start].to_s.to_i} ie the case when price > 600

我正在验证用户是不是在更改构成长数组的params。

如何修改此查询以传递>和<而不是价格数组。

2 个答案:

答案 0 :(得分:4)

思考Sphinx仅使用范围,不大于/小于符号。

在我的应用中,我做了类似的事情:

value = 23
MyClass.search("itemname", :with => {:price => value..0xffffffff})

答案 1 :(得分:2)

可能是:without => {:price => 1..600}