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 at 
>> http://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.
> 

-- 
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.

Reply via email to