So it’s working now? :) > On 30 Nov 2014, at 2:27 pm, alexa <[email protected]> wrote: > > I sent the second query from the else statement. > > The first query is: > > @search = Search.new > > if location = Location.find_by_zip_code(params[:search]) > latitude = location.latitude * Math::PI / 180 > longitude = location.longitude * Math::PI / 180 > > locations = Location.search( > :geo => [latitude, longitude], > :with => {:geodist => 0.0..100_000.0}, > :order => 'geodist ASC', > :per_page => 5_000 > ) > @users = User.where(zip_code: locations.map(&:zip_code)) > > > haha I totally forgot to combine the with conditions! > > On Friday, November 28, 2014 6:32:01 PM UTC-5, Pat Allan wrote: > Oh, but also - you’re specifying :with twice - you need to combine those two > hashes into one! > >> On 29 Nov 2014, at 10:29 am, Pat Allan <[email protected] >> <javascript:>> wrote: >> >> I don’t think that’s the same query as the SphinxQL you’ve shared - because >> that had ‘user_id <> 1’ in it. >> >>> On 29 Nov 2014, at 10:27 am, alexa <[email protected] <javascript:>> >>> wrote: >>> >>> @users = User.search(params[:query], >>> :conditions => { :gender => params[:gender]}, >>> :with => {:age => 18..55}, >>> :geo => [current_user.latitude * Math::PI / 180.0, >>> current_user.longitude * Math::PI / 180.0], >>> :with => {:geodist => 0.0..100_000.0}, >>> :order => 'geodist ASC') >>> >>> On Friday, November 28, 2014 6:23:51 PM UTC-5, Pat Allan wrote: >>> Can you share the search call in your controller? >>> >>>> On 29 Nov 2014, at 8:17 am, alexa <[email protected] <>> wrote: >>>> >>>> Ok I am doing it as such but it is ignoring the age search. For example I >>>> am doing 18-22 search for Males, and it's returning all Males regardless >>>> of their age. >>>> >>>> Params being passed are gender=Male&start_age=18&end_age=23 >>>> >>>> In the view form is setup as: >>>> >>>> select_tag :start_age, options_for_select((18..65) >>>> >>>> select_tag :end_age, options_for_select((20..65) >>>> >>>> The issue seems to be in the sphinx query: >>>> >>>> Sphinx Query (0.9ms) SELECT GEODIST(0.5904448859496816, >>>> -1.464156709498043, latitude, longitude) AS geodist, * FROM `user_core` >>>> WHERE MATCH('@gender Male') AND `geodist` BETWEEN 0.0 AND 100000.0 AND >>>> `sphinx_deleted` = 0 AND `user_id` <> 1 ORDER BY `geodist` ASC LIMIT 0, 20 >>>> >>>> Is it required to pass the age param in the conditions method? As I'm >>>> doing that for gender :gender => params[:gender] >>>> >>>> On Thursday, November 27, 2014 6:09:35 PM UTC-5, Pat Allan wrote: >>>> If age is a column on the users table (and it sounds like it is) then you >>>> can just refer to it directly in the `has` call: >>>> >>>> has age >>>> >>>> Then, you’ll need to run `rake ts:rebuild` to have the Sphinx >>>> configuration and indices updated, and after that: >>>> >>>> User.search params[:query], :with => {:age => 18..55} >>>> >>>> If you’re using your user_age_range method, make sure it’s returning a >>>> range of integers: >>>> >>>> params[:start_age].to_i..params[:end_age].to_i >>>> >>>> Cheers >>>> >>>> — >>>> Pat >>>> >>>>> On 28 Nov 2014, at 5:10 am, alexa <gifted...@ <>gmail.com >>>>> <http://gmail.com/>> wrote: >>>>> >>>>> I can successfully perform a age search using ThinkingSphinx if I do this >>>>> in the controller: >>>>> >>>>> @users = User.where(age: user_age_range) >>>>> >>>>> private >>>>> def user_age_range >>>>> params[:start_age]..params[:end_age] >>>>> end >>>>> >>>>> That requires no changes to the index. However it ignores all my previous >>>>> rules with geo search distance, since I am overwriting my original @users >>>>> = User.search(params[:query] by having two @users statements. >>>>> >>>>> I'm not sure how to adjust it using `age: user_age_range` with the @users >>>>> = User.search(params[:query] . >>>>> >>>>> So I figured the best option would be to do a with condition, :with => { >>>>> :age => 18..55 } and add age as a 'has' attribute so Sphinx can do that >>>>> max computation. But setting up the 'has' attribute has been confusing >>>>> for me lol. What should the age 'has' attribute look like if I am tying >>>>> to do the with condition? >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google Groups >>>>> "Thinking Sphinx" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send an >>>>> email to thinking-sphi...@ <>googlegroups.com <http://googlegroups.com/>. >>>>> To post to this group, send email to thinkin...@ <>googlegroups. >>>>> <http://googlegroups.com/>com <http://googlegroups.com/>. >>>>> Visit this group at http://groups.google.com/group/thinking-sphinx >>>>> <http://groups.google.com/group/thinking-sphinx>. >>>>> For more options, visit https://groups.google.com/d/optout >>>>> <https://groups.google.com/d/optout>. >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google Groups >>>> "Thinking Sphinx" group. >>>> To unsubscribe from this group and stop receiving emails from it, send an >>>> email to [email protected] <>. >>>> To post to this group, send email to [email protected] <>. >>>> Visit this group at http://groups.google.com/group/thinking-sphinx >>>> <http://groups.google.com/group/thinking-sphinx>. >>>> For more options, visit https://groups.google.com/d/optout >>>> <https://groups.google.com/d/optout>. >>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Thinking Sphinx" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected] <javascript:>. >>> To post to this group, send email to [email protected] >>> <javascript:>. >>> Visit this group at http://groups.google.com/group/thinking-sphinx >>> <http://groups.google.com/group/thinking-sphinx>. >>> For more options, visit https://groups.google.com/d/optout >>> <https://groups.google.com/d/optout>. >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Thinking Sphinx" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at http://groups.google.com/group/thinking-sphinx >> <http://groups.google.com/group/thinking-sphinx>. >> For more options, visit https://groups.google.com/d/optout >> <https://groups.google.com/d/optout>. > > > -- > You received this message because you are subscribed to the Google Groups > "Thinking Sphinx" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > Visit this group at http://groups.google.com/group/thinking-sphinx > <http://groups.google.com/group/thinking-sphinx>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>.
-- You received this message because you are subscribed to the Google Groups "Thinking Sphinx" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/thinking-sphinx. For more options, visit https://groups.google.com/d/optout.
