Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to index boolean column in thinking sphinx using Ruby 1.8.7

I am new to ROR. i am using thinking sphinx. I need to index with one boolean field. that is, i list out records which are active is true.

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

I need to list out car details which are belong to active is true. can you help me?

like image 769
Anandh L.v Avatar asked Jan 20 '23 10:01

Anandh L.v


1 Answers

If you want to filter on a boolean, then it's much better to have it as an attribute in Sphinx, instead of a field. Fields are the text data people will search for, attributes are the things you as a developer will order and filter by.

So, to set up that boolean column as an attribute:

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

And then filtering:

Model.search 'foo', :with => {:car_active => true}
like image 96
pat Avatar answered Feb 23 '23 08:02

pat