Pat,

I've been looking around this group and you're all over the place,
thanks for the time and effort you put into this.

Elías

On Mar 11, 3:11 am, Pat Allan <[email protected]> wrote:
> Hi Elías
>
> You're missing a space when you join the two sets of data together in your 
> search query
>   current_account.interests + ' ' + current_account.tags
>
> That said, you *can* search across different fields with OR logic, it's just 
> that you can't do it using :conditions...
>
> Quick overview: :conditions => {:foo => 'bar'} gets translated to '@foo bar' 
> for Sphinx. So, if you construct the query yourself, you probably want the 
> following:
>
>   (@tags #{ current_account.tags.split(/\s+/).join(' | ') }) | (@interests #{ 
> current_account.integers.split(/\s+/).join(' | ') })
>
> Might be more elegant ways of building that, but you want to put that in as 
> the main query string, and then set the match mode explicitly (because you're 
> not using :conditions any more):
>
>   Account.search query, :match_mode => :extended, :star => true
>
> --
> Pat
>
> On 11/03/2010, at 4:43 PM, elioncho wrote:
>
> > As I explained above, I needed a way to specify OR conditions to
> > search by tags or interests. I've read a few things here and there and
> > found out that is not possible (maybe I missed something). So, I
> > decided to make an index with both fields as shown below, but this
> > ain't working at all. What am I doing wrong?
>
> > define_index do
> >  indexes [tags, interests], :as => :foo
> >  indexes :about
> >  ...
> > end
>
> > The search:
>
> > @accounts = Account.search :conditions => {:foo =>
> > (current_account.interests+current_account.tags).split(/\s+/).join(' |
> > ')  }, :star => true
>
> > On Mar 10, 10:23 pm, elioncho <[email protected]> wrote:
> >> Thanks Pat,
>
> >> One last thing. Is there a way to add some OR conditions in
> >> the :conditions hash or is this not possible? Is there is another way
> >> to add this OR functionality? I haven't found anything so far.
>
> >> Thanks a lot,
>
> >> Elías
>
> >> On Mar 10, 6:36 pm, Pat Allan <[email protected]> wrote:
>
> >>> Ah, I didn't realise you were searching on a specific field - that 
> >>> requires (and automatically sets) the match mode to :extended.
>
> >>> But, you can use boolean logic in extended mode. What you'll need to do 
> >>> is split your tags with |'s ie:
> >>>   "stores | markets | finance"
>
> >>> So, perhaps this snippet this will help:
> >>>   current_account.interests.split(/\s+/).join(' | ')
>
> >>> Cheers
>
> >>> --
> >>> Pat
>
> >>> On 11/03/2010, at 10:15 AM, elioncho wrote:
>
> >>>> Thank you Pat, but I still have a problem. I'm indexing two fields in
> >>>> my account model (tags and interests). This fields are fill in by the
> >>>> user when he creates his account. My app has to show each account
> >>>> which others accounts may interest him. So the app takes the arguments
> >>>> on the interests field and searches on the other accounts tags field.
>
> >>>> @accounts = Account.search :conditions => {:tags =>
> >>>> current_account.interests }, :star => true, :match_mode => :any
>
> >>>> The problem is that :conditions doesn't works with :match_mode
> >>>> => :any, only :extended. So if the user has as interests (books,
> >>>> papers, pencils) and there is an account with tags (papers, pencils)
> >>>> the search doesn't gives me any results. How can I get around this
> >>>> issue?
>
> >>>> Thank you!
>
> >>>> On Mar 4, 12:40 am, Pat Allan <[email protected]> wrote:
> >>>>> HiElioncho
>
> >>>>> It sounds like you want to match ANY of the words, instead of ALL the 
> >>>>> words. Sphinx (and Thinking Sphinx) default to ALL - but you can choose 
> >>>>> other match modes if you'd like, including ANY:
>
> >>>>>   Model.search "stores markets finance", :match_mode => :any
>
> >>>>> The docs have a bit more information on 
> >>>>> this:http://freelancing-god.github.com/ts/en/searching.html#matchmodes
>
> >>>>> Cheers
>
> >>>>> --
> >>>>> Pat
>
> >>>>> On 02/03/2010, at 1:55 PM,elionchowrote:
>
> >>>>>> Hi guys,
>
> >>>>>> When I query for 'stores, markets, finance' and I have on my indexes
> >>>>>> columns two rows of data with:
>
> >>>>>> - stores
> >>>>>> - shirts, pants, lotions, stores
>
> >>>>>> (see 'stores' is in both)
>
> >>>>>> I expect to get these two rows of data as results, but I don't get
> >>>>>> anything. The only way to get this two rows of data is by only
> >>>>>> querying for 'stores'. Now I wonder, how can I configure thinking
> >>>>>> sphinx to fetch for me these two rows of data?
>
> >>>>>> Thank you,
>
> >>>>>> Elioncho
>
> >>>>>> --
> >>>>>> 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 
> >>>> 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 
> > 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.

Reply via email to