如何使用Ruby 1.8.7思考sphinx中的boolean列

时间:2011-06-22 17:25:26

标签: ruby-on-rails thinking-sphinx

我是ROR的新手。我正在使用思维狮身人面像。我需要使用一个布尔字段进行索引。也就是说,我列出了活跃的记录是真的。

define_index do
  indexes car.name, :as => :car
  indexes car_model.car_make.name, :as => :car_make
  indexes city_name.city , :as=> :city_name
  indexes car_active, :as=>:is_active, :type=>:boolean, :default=>true
end

我需要列出属于active的汽车详情是真的。你能救我吗?

1 个答案:

答案 0 :(得分:9)

如果要对布尔值进行过滤,那么将它作为Sphinx中的属性而不是字段会更好。字段是人们将搜索的文本数据,属性是您作为开发人员将订购和过滤的内容。

因此,要将该布尔列设置为属性:

define_index do
  # fields
  indexes car.name, :as => :car
  indexes car_model.car_make.name, :as => :car_make
  indexes city_name.city , :as=> :city_name

  # attributes
  has car_active
end

然后过滤:

Model.search 'foo', :with => {:car_active => true}