Hi Carson

You can search on all fields and specific fields at once:

  Post.search 'whatever', :conditions => {:user => 'Carson'}

Or even:

  Post.search :conditions => {:user => 'Carson', :title => 'Whatever'}

Hope this helps

-- 
Pat

On 25/03/2010, at 3:31 AM, Carson wrote:

> That will allow me to search for user.first_name, and works, but what
> about searching for that plus text from a post.
> 
> In other words, I want all posts by an author with the first name
> 'carson' that has a post title 'whatever'
> 
> Thanks for the help!
> 
> On Mar 24, 1:52 am, Amir Yalon <[email protected]> wrote:
>> In stead of:
>>   has user(:id), :as => :author
>> try to declare:
>>   indexes user.first_name, :as => :author
>> and adjust your query accordingly.
>> 
>> 
>> 
>> On Wed, Mar 24, 2010 at 00:30, Carson <[email protected]> wrote:
>>> Very new to this, so please stick with me.  I have 2 models:
>> 
>>> User:
>>> id, first_name, last_name, created_at
>> 
>>> define_index do
>>>    indexes user.first_name, user.last_name
>>> end
>> 
>>> Post:
>>> id, user_id, title, post, created_at
>> 
>>> define_index do
>>>    indexes title, post
>> 
>>>    has user(:id), :as => :author
>> 
>>>    set_property :enable_star => 1
>>>    set_property :min_prefix_len => 3
>>>  end
>> 
>>> I'm trying to search all Posts with "page" in the title, that have
>>> been authored by a certain user.  I can get it to work by passing in
>>> the ID of a user with conditions on the search.  But how can I do it
>>> by passing in a string of the first_name of the user?  Is it possible?
>> 
>>> Thanks in advance.
>> 
>>> following is the actual search, that uses the user_id:
>> 
>>> @per_page = 20
>> 
>>>      conditions = Hash.new
>> 
>>>      if params[:start_date] != nil && params[:end_date] != nil
>>>        start_date = Time.parse(params[:start_date])
>>>        end_date = Time.parse(params[:end_date])
>>>        conditions.merge!({ :created_at => start_date..end_date })
>>>      end
>> 
>>>      authors = Array.new
>>>      authors.push(16)
>> 
>>>      conditions.merge!({:author => authors})
>> 
>>>      @classes.push(User)
>>>      @classes.push(Post)
>> 
>>>  if @classes.count > 0
>>>        @results = ThinkingSphinx::Search.search '*' + params[:query]
>>> + '*', :with => conditions, :classes => @classes, :index_weights =>
>>> { School => 10, User => 10, UserWallpost => 70, GroupDiscussion => 90,
>>> GroupDiscussionComment => 80, Item => 100 }, :retry_stale =>
>>> true, :per_page => @per_page, :page => params[:page]
>>>  end
>> 
>>> --
>>> 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]<thinking-sphinx%2Bunsubscribe@ 
>>> googlegroups.com>
>>> .
>>> 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