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

Ana*_*L.v 4 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
Run Code Online (Sandbox Code Playgroud)

我需要列出属于活动的汽车细节是真的.你能帮助我吗?

pat*_*pat 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
Run Code Online (Sandbox Code Playgroud)

然后过滤:

Model.search 'foo', :with => {:car_active => true}
Run Code Online (Sandbox Code Playgroud)

  • @kamal:当有人可能进入搜索字段的字符串数据时,使用`indexes`(这些是Sphinx调用的字段).对于任何你作为开发人员将过滤,排序或分组的任何东西 - 通常这些是布尔值,整数和时间戳值 - 使用`has`(这些是Sphinx调用的属性). (2认同)