LOTS of thanks to Pat and James!! It is working now, needed only a little tweaking. You're really cool, guys, lots of thanks again.... now i can try to sleep some hours heheh
Iván On Mar 25, 6:17 am, Pat Allan <[email protected]> wrote: > Have a look at the SQL query generated in your development.sphinx.conf > file, try running that for a specific record, and see if it returns > the data you want. And then to search, you'll need to try: > > Item.search "keywords", :with => {:video_or_pictures => 1} > > Cheers > > -- > Pat > > On 25/03/2009, at 4:10 PM, Iván Belmonte wrote: > > > > > Hello Pat > > > Yes, the intention is very clear. And i've been trying this way too > > (i'm in spain, and here now it is 6 in the morning, i've been 18 hours > > reading and working on this). > > The fact is that the sql seems not to be working really... how can I > > see the video_or_properties field of a search? (sorry for the mistake, > > it is "Pictures", not "properties") > > I'm trying from the console, this way: > > > Item.search('somekeyword').each {|p| puts p.video_or_pictures } > > > But of course "video_or_pictures" is not a valid field. How can I see > > how is my model indexing that sql query? > > > Iván > > > On Mar 25, 5:39 am, Pat Allan <[email protected]> wrote: > >> Hi Iván > > >> Again, a custom attribute is going to be best suited. Maybe something > >> like the following: > >> has "has_video = 1 OR (SELECT COUNT(id) FROM properties WHERE > >> item_id = items.id) > 0", > >> :as => :video_or_properties, :type => :integer > > >> I'm making some assumptions about the schema and generated query, but > >> hopefully the intention is clear. > > >> Cheers > > >> -- > >> Pat > >> e: [email protected] || m: +614 1327 3337 > >> w:http://freelancing-gods.com|| t: twitter.com/pat > >> discworld:http://ausdwcon.org|| skype: patallan > > >> On 25/03/2009, at 3:31 PM, Iván Belmonte wrote: > > >>> Hello James > > >>> Yes I see... Well, I knew these limitations, just wanted to make > >>> sure... > > >>> And how can I say "different than"? > >>> Because i'm thinking about something like: > > >>> Item.search('(@property_ids !0 | @has_video 1)', :match_mode > >>> => :extended) > > >>> Iván > > >>> On Mar 25, 5:13 am, James Healy <[email protected]> wrote: > >>>> Hi Ivan, > > >>>> Have a read of the following thread, it should answer your > >>>> questions: > > >>>>http://groups.google.com/group/thinking-sphinx/browse_thread/ > >>>> thread/ > >>>> c... > > >>>> Essentially, you can use OR when searching indexed text fields, but > >>>> not > >>>> attributes. > > >>>> You might also want to read the documentation in > >>>> lib/thinking_sphinx/index/builder.rb, it covers some of the > >>>> differences > >>>> and limitations of fields (indexes ...) and attributes (has ...). > > >>>> James > > >>>> Iván Belmonte wrote: > > >>>>> Well, another solution is applying OR to conditions, this way: > > >>>>> in model, as normally: > > >>>>> ------------ > >>>>> define_index so > >>>>> [...] > >>>>> indexes :has_video > >>>>> has pictures(id), :as => :picture_ids > >>>>> end > >>>>> ------------ > > >>>>> Then, in the controller; > > >>>>> Item.search(:conditions => { :picture_ids => 1..1000 > >>>>> | :has_video => > >>>>> 1 }) > > >>>>> each condition alone works great. What i'd need is the syntax for > >>>>> "OR'ing" them > > >>>>> Iván > > >>>>> On Mar 25, 4:39 am, Iván Belmonte <[email protected]> wrote: > >>>>>> Trying to index this way: > > >>>>>> indexes pictures.size, :as => :num_pictures > > >>>>>> But still not working... i'm desperate :-( > > >>>>>> Iván > > >>>>>> On Mar 25, 2:38 am, Iván Belmonte <[email protected]> wrote: > > >>>>>>> I see that items not having associated pictures don't have the > >>>>>>> field > >>>>>>> "picture_ids", so maybe the easiest way was asking sphinx for > >>>>>>> that > >>>>>>> field.... something like: > > >>>>>>> Item.search(:conditions => { :picture_ids => !nil }) > > >>>>>>> or something similar... does it exist any syntax for asking > >>>>>>> this? > > >>>>>>> Thanks again, > > >>>>>>> Iván > > >>>>>>> On Mar 25, 1:47 am, Iván Belmonte <[email protected]> wrote: > > >>>>>>>> Helllo there, > > >>>>>>>> I have a model like this: > > >>>>>>>> ------------- > >>>>>>>> define_index do > >>>>>>>> indexes description > >>>>>>>> indexes amount > >>>>>>>> [...] > >>>>>>>> indexes has_video <----- this field is bool > >>>>>>>> indexes pictures(:id), :as => :picture_ids > >>>>>>>> [...] > >>>>>>>> end > >>>>>>>> -------------- > > >>>>>>>> Then what i need to search is something like this: > > >>>>>>>> -------------- > >>>>>>>> Model.search("some keywords" (@has_video "1" | @picture_ids > >>>>>>>> "*") > >>>>>>>> -------------- > > >>>>>>>> I mean, I need to match: > >>>>>>>> - "some keywords" AND > >>>>>>>> - "has_video" is set to "1" _OR_ Model has one or more > >>>>>>>> Pictures > >>>>>>>> associated. > > >>>>>>>> I didn't find any documentation about the second part... how > >>>>>>>> can I do > >>>>>>>> this? > > >>>>>>>> Thanks in advance! > > >>>>>>>> Ivan > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
