Loading...

thinking-sphinx@googlegroups.com

[Prev] Thread [Next]  |  [Prev] Date [Next]

[ts] thinking sphinx 2.0.9: search_for_ids not respecting implicit attribute conditions (vs the search method) Gulli Sveinsson Fri Feb 03 03:01:29 2012

I think I found a bug so I thought I'd post here to make sure this is
indeed incorrect. Not sure if this is a Sphinx or Thinking Sphinx
issue.

(sphinx 2.0.2-beta, thinking-sphinx 2.0.9)

Idea.search 'tour', :with => {:thinker_id => bob.id}, :per_page =>
1000
(returns 6 results... that's the number of ideas in my DB that contain
'tour' with bob's thinker id)

bob.ideas.search 'tour', :per_page => 1000
(returns 6 results... the same number, which is expected since
bob.ideas.search should do exactly the same as a search on the Idea
model itself, with thinker_id specified in a :with hash)

Idea.search_for_ids 'tour', :with => {:thinker_id =>
bob.id}, :per_page => 1000
(returns 6 results... expected, search_for_ids simply returns id's and
not full records)

bob.ideas.search_for_ids 'tour', :per_page => 1000
(returns 280 results... this is UNexpected)

So when you invoke search_for_ids on Bob's idea collection, it doesn't
restrict the search to only bob's ideas. Looks like search_for_ids,
when chain invoked, does not implicitly add the :with => {:thinker_id
=> bob.id} to the search.


...BUT....

bob.ideas.search_for_ids 'tour', :with => {:thinker_id =>
bob.id}, :per_page => 1000
(returns 6 results)

Something strange is going on here, because the search method chained
to bob.ideas IS limited to bob's ideas,
but the search_for_ids method chained in the same way IS NOT limited
to bob's ideas, unless you explicitly supply the :with restriction.

Is this intended? Seems weird.

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