def self.filter_streams(user_id, filter_text=nil, page=1,
per_page=UPLOADS_RESULTS_PER_PAGE)

    conditions = {
      :user_id => user_id,
      :creator_id => "creator_id <> #{user_id}"
    }

    date = Chronic.parse(filter_text)
    unless date.nil?
      conditions[:created_at] =
date.beginning_of_day.to_i..date.end_of_day.to_i
      filter_text = nil
    end

    Upload.search(filter_text, :conditions => conditions,
        :page => page, :per_page => per_page, :order =>
[:created_at, :id])
end


I've tried different combinations of have user_id or the date or both,
but I get nothing back unless I use only the filter_text for the
description.

Chronic is a date parser that returns nil if it doesn't recognize the
date.  So it will search or for date or for the text if it doesn't.

B

On Feb 12, 12:26 am, Pat Allan <[email protected]> wrote:
> How are you querying against user_id and/or creator_id?
>
> Cheers
>
> --  
> Pat
>
> On 12/02/2009, at 4:25 PM, brian wrote:
>
>
>
> > Hi Pat,
>
> > Thanks for looking at this.  Its my first time using sphinx, but I've
> > found it pretty good so far.  I'm using other indexes in my app
> > without any trouble.
>
> > Its returning the correct records.  It works with description, but
> > when I add the :creator_id, I get an empty array back.  I want to
> > search within uploads for entities that I'm subscribed to.
>
> > Thanks,
> > Brian
>
> > On Feb 11, 9:01 pm, Pat Allan <[email protected]> wrote:
> >> Hi Brian
>
> >> Do you get the expected data in the user_id column if you run that  
> >> SQL
> >> query (stripping out the id filtering in the WHERE clause, of  
> >> course)?
>
> >> --
> >> Pat
>
> >> On 12/02/2009, at 1:31 AM, brian wrote:
>
> >>> Here is the sql that I have:
>
> >>> SELECT `uploads`.`id` * 3 + 1 AS `id` , CAST(`uploads`.`description`
> >>> AS CHAR) AS `description`, UNIX_TIMESTAMP(`uploads`.`created_at`) AS
> >>> `created_at`, `uploads`.`creator_id` AS `creator_id`, GROUP_CONCAT
> >>> (`subscriptions`.`user_id` SEPARATOR ',') AS `user_id`,  
> >>> `uploads`.`id`
> >>> AS `sphinx_internal_id`, 269607721 AS `class_crc`, '269607721' AS
> >>> `subclass_crcs`, 0 AS `sphinx_deleted`
>
> >>> FROM uploads
> >>> LEFT OUTER JOIN `entities` ON `entities`.id = `uploads`.entity_id
> >>> LEFT OUTER JOIN `subscriptions` ON subscriptions.entity_id =
> >>> entities.id
>
> >>> WHERE `uploads`.`id` >= $start   AND `uploads`.`id` <= $end    AND
> >>> `uploads`.`delta` = 0 GROUP BY `uploads`.`id`
>
> >>> ORDER BY NULL
>
> >>> On Feb 10, 11:45 pm, Pat Allan <[email protected]> wrote:
> >>>> Hi Brian
>
> >>>>  From an initial look, it seems like you're doing the right thing -
> >>>> although entity.subscriptions(:user_id) could be done as
> >>>> entity.subscriptions.user_id.
>
> >>>> What's the sql_query in your development.sphinx.conf file for the
> >>>> Upload index?
>
> >>>> --
> >>>> Pat
>
> >>>> On 11/02/2009, at 5:27 AM, brian wrote:
>
> >>>>> I'm trying to get associations working, but can't seem to get it
> >>>>> right.  I have users, who can subscribe to entities.  Entities  
> >>>>> have
> >>>>> uploads and uploads have descriptions.  I want to search
> >>>>> upload.description through all of a user's subscription.
>
> >>>>> Here are my models:
>
> >>>>> class User < ActiveRecord::Base
> >>>>>  has_many :subscriptions
> >>>>>  has_many :entity_subscriptions, :through  
> >>>>> => :subscriptions, :source
> >>>>> => 'entity'
> >>>>>  has_many :entities, :foreign_key => 'owner_id'
> >>>>>  ...
> >>>>> end
>
> >>>>> class Entity < ActiveRecord::Base
> >>>>>  has_many :uploads
> >>>>>  has_many :subscriptions
> >>>>>  has_many :subscribers, :through => :subscriptions, :source =>
> >>>>> 'user'
> >>>>>  ...
> >>>>> end
>
> >>>>> class Subscription < ActiveRecord::Base
> >>>>>    belongs_to :entity
> >>>>>    belongs_to :user
> >>>>> end
>
> >>>>> class Upload < ActiveRecord::Base
> >>>>>  belongs_to :entity
>
> >>>>>  define_index do
> >>>>>    indexes description
> >>>>>    has :created_at
> >>>>>    has :creator_id
> >>>>>    has entity.subscriptions(:user_id), :as => :user_id
> >>>>>    set_property :delta => true
> >>>>>  end
> >>>>>  ...
> >>>>> end
>
> >>>>> If I add in user id, i don't get subscriptions for the user that I
> >>>>> want.  I think I've just set it up wrong, any help is greatly
> >>>>> apprieciated.
>
> >>>>> Thanks,
> >>>>> Brian
>
>
--~--~---------~--~----~------------~-------~--~----~
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