HI Pat Switching the city from attribute to index made the trick. Thanks a lot for your help!
Joan On Nov 11, 9:56 pm, Pat Allan <[email protected]> wrote: > Also, make sure you run `rake ts:rebuild` after making that change to your > index definition :) > > -- > Pat > > On 12/11/2011, at 9:48 AM, Pat Allan wrote: > > > > > > > > > Hi Joan > > > City should be a field, not an attribute - so switch 'has city' to 'indexes > > city' and see if that helps matters. > > > Cheers > > > -- > > Pat > > > On 12/11/2011, at 2:15 AM, Joan Ruiz wrote: > > >> Hi Pat, thanks for the quick reply > > >> I did read the wild cards example and created my config/sphinx.yml > >> with this data: > > >> development: > >> enable_star: 1 > >> min_infix_length: 3 > > >> But seems like the star is not working properly. I'm doing this search > > >> params = {:generic_text => "Michael", :city => "Dall"} > >> Client.search params[:generic_search], :conditions => {:city => > >> "#{params[:city]}*"} > > >> but it is returning clients from many cities like Medellin, Dallas and > >> Madrid (Those are the cities I have on my DB at this moment). > > >> Also, I tried these searches on console and they didn't found the > >> client > > >> ruby-1.9.2-p290 :001 > Client.search "mich*" > >> Sphinx Query (1.8ms) mich* > >> Sphinx Found 0 results > >> => [] > >> ruby-1.9.2-p290 :002 > Client.search "*mich*" > >> Sphinx Query (1.9ms) *mich* > >> Sphinx Found 0 results > >> => [] > > >> my indexes are > > >> define_index do > >> indexes :name > >> indexes registered_name > >> indexes contacts.name, :as => :contact > >> has city > >> has created_at > >> end > > >> I checked the file development.sphinx.config and looks like this > > >> source client_core_0 > >> { > >> type = mysql > >> sql_host = localhost > >> sql_user = my_user > >> sql_pass = my_secret_password > >> sql_db = Proyect_development > >> sql_sock = /var/run/mysqld/mysqld.sock > >> sql_query_pre = SET NAMES utf8 > >> sql_query_pre = SET TIME_ZONE = '+0:00' > >> sql_query = SELECT SQL_NO_CACHE `clients`.`id` * CAST(1 AS SIGNED) + > >> 0 AS `id` , `clients`.`name` AS `name`, `clients`.`registered_name` AS > >> `registered_name`, GROUP_CONCAT(DISTINCT IFNULL(`contacts`.`name`, > >> '0') SEPARATOR ' ') AS `contact`, `clients`.`id` AS > >> `sphinx_internal_id`, 0 AS `sphinx_deleted`, 3236430179 AS > >> `class_crc`, UNIX_TIMESTAMP(`clients`.`created_at`) AS `created_at`, > >> IFNULL(`clients`.`city`, '') AS `city` FROM `clients` LEFT OUTER JOIN > >> `contacts` ON `contacts`.`client_id` = `clients`.`id` WHERE > >> (`clients`.`id` >= $start AND `clients`.`id` <= $end) GROUP BY > >> `clients`.`id` ORDER BY NULL > >> sql_query_range = SELECT IFNULL(MIN(`id`), 1), IFNULL(MAX(`id`), 1) > >> FROM `clients` > >> sql_attr_uint = sphinx_internal_id > >> sql_attr_uint = sphinx_deleted > >> sql_attr_uint = class_crc > >> sql_attr_timestamp = created_at > >> sql_attr_str2ordinal = city > >> sql_query_info = SELECT * FROM `clients` WHERE `id` = (($id - 0) / > >> 1) > >> } > > >> index client_core > >> { > >> source = client_core_0 > >> path = /home/curien/work/proyect/db/sphinx/development/client_core > >> charset_type = utf-8 > >> enable_star = 1 > >> } > > >> Do you have any idea what could be the problem? > > >> Thanks for your time and help > > >> Joan > > >> On Nov 11, 12:23 am, Pat Allan <[email protected]> wrote: > >>> Hi Joan > > >>> You will want to use :with for the date range - and then you'll need > >>> wildcards for the city matching. You can find the relevant settings > >>> here:http://freelancing-god.github.com/ts/en/common_issues.html#wildcards > > >>> And so your query will become: > > >>> Client.search params[:generic_text], > >>> :conditions => {:city => "*#{params[:city]*"}, > >>> :with => {:created_at => params[:start_date]..params[:end_date]} > > >>> Although you'll want to make sure params[:start_date] and > >>> params[:end_date] are actually Time objects. > > >>> Cheers > > >>> -- > >>> Pat > > >>> On 11/11/2011, at 12:14 PM, Joan Ruiz wrote: > > >>>> Hello > > >>>> I have a search form with 4 text fields: generic text, city, start > >>>> date and end date. Generic text uses TS to search on name, registered > >>>> name and contact's name and I need a query like this: > > >>>> Client.search("params[:generic_text]", :conditions => ["city like ? > >>>> and created_at > ? and created_at < ?", "%params[:city]%", > >>>> params[:start_date], params[:end_date]]) > > >>>> I have seen that I can use :with to search on the range of dates, but > >>>> I can't find something similar to "city like ?" > >>>> Am I missing something? Any help would be really appreciated > > >>>> These are my indexes on the Client model > > >>>> define_index do > >>>> indexes :name > >>>> indexes registered_name > >>>> indexes contacts.name, :as => :contact > >>>> has :country > >>>> has :created_at > >>>> end > > >>>> pd: sorry for the bad English > > >>>> -- > >>>> You received this message because you are subscribed to the Google > >>>> Groups "Thinking Sphinx" group. > >>>> To post to this group, send email to [email protected]. > >>>> To unsubscribe from this group, send email to > >>>> [email protected]. > >>>> For more options, visit this group > >>>> athttp://groups.google.com/group/thinking-sphinx?hl=en. > > >> -- > >> You received this message because you are subscribed to the Google Groups > >> "Thinking Sphinx" group. > >> To post to this group, send email to [email protected]. > >> To unsubscribe from this group, send email to > >> [email protected]. > >> For more options, visit this group > >> athttp://groups.google.com/group/thinking-sphinx?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups > > "Thinking Sphinx" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/thinking-sphinx?hl=en. -- You received this message because you are subscribed to the Google Groups "Thinking Sphinx" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/thinking-sphinx?hl=en.
