Hello again

For anyone who is interested - I have implemented Pat's idea about
grouping by a multi-field CRC32 attribute (see above)  and it works
great.

I have a question about field_weights but I'll create a new thread.

Thanks again Pat.

Shaun

On Jan 25, 8:04 am, Shaun <[email protected]> wrote:
> Cheers Pat
>
> I'm hoping it's not such an odd case, it's just that we need to
> display search results based on lots of different criteria, not just
> simply ordering by date or title etc. I think your previous suggestion
> about creating a new attribute based on CRC32-ing the various fields
> to group_by is excellent and I will implement that today and report
> back on how successful it is. My main concern was that if I do start
> grouping like that, I might loose control over the order in which the
> records are displayed within the group. i.e which record actually
> displays, representing the group. I will play with the group_clause
> and see how I get on.
>
> Apart from that, I was just interested in the difference between using
> group_by in the model and group_by in the query.
>
> As always, thanks for getting back.
>
> Shaun
>
> On Jan 25, 2:45 am, Pat Allan <[email protected]> wrote:
>
>
>
> > Hi Shaun
>
> > TS really works best if a normal search translates nicely across to each 
> > row in the model's table, instead of grouping on that table's columns (ie: 
> > each document id in Sphinx should map to a record in the table). So I'd 
> > stick to using Sphinx's grouping instead when searching.
>
> > I've not tested it, but if you wanted to group for *every* search on a 
> > specific model, you may be able to use :group_by et al in your define_index 
> > block, like so:
> >   set_property :group_by => 'group_num'
>
> > I see this as a pretty odd case, though... would it be better changing the 
> > way your tables are structured instead? Though that maybe isn't a good fit 
> > from the overall perspective of the app.
>
> > --
> > Pat
>
> > On 24/01/2010, at 5:02 PM, Shaun wrote:
>
> > > Hi Pat
>
> > > Thanks for getting back to me mate. Greatly appreciated!
>
> > > Yeah, that sounds like a good idea, I hadn't thought of it like that -
> > > it just takes thinking about things a little differently. Thanks for
> > > the pointer.
>
> > > Is there any more information on the difference between using group_by
> > > in the search query and using it in the index? If you group in the
> > > index by one field and then use group by in the search query on
> > > another field, what would be happening behind the scenes there?
>
> > > Also, is it possible to set the group clause when grouping at the
> > > index level to set the order by which the records are grouped?
>
> > > Thanks again
>
> > > Shaun
>
> > > On Jan 23, 9:14 pm, Pat Allan <[email protected]> wrote:
> > >> Hi Shaun
>
> > >> There was support for grouping on a pair of attributes back in Sphinx 
> > >> 0.9.8, but that was really just a hack for 64bit int support, which is 
> > >> now in 
> > >> 0.9.9.http://www.sphinxsearch.com/forum/view.html?id=890http://www.sphinxse...
>
> > >> If you want results grouped by format and title together, why not set a 
> > >> single attribute that CRC's both of them?
> > >>   has "CRC32(CONCAT(format, title))", :as => :group_num, :type => 
> > >> :integer
>
> > >> --
> > >> Pat
>
> > >> On 22/01/2010, at 7:35 PM, Shaun wrote:
>
> > >>> Hi there
>
> > >>> Is there a way I can group my results by multiple attributes? I have
> > >>> many records that contain the same data in a few fields and need to
> > >>> collapse them into one record. Am I right in thinking the :group_by
> > >>> option in the search method only allows one attribute to be specified?
> > >>> I have tried :group_by => 'field_one, field_two' but I then get zero
> > >>> results from the search. I am also specifying the group_function as
> > >>> attr and a group_clause as results within the group need to be
> > >>> ordered:
>
> > >>> Product Model:
>
> > >>> define_index do
> > >>>    indexes title
>
> > >>>    has "CRC32(format)", :as => :num_format, :type => :integer
> > >>>    has "CRC32(title)", :as => :num_title, :type => :integer
> > >>>    has "COUNT(DISTINCT suppliers.id)", :as => :supplier_count, :type
> > >>> => :integer
> > >>> end
>
> > >>> @products = Product.search(
> > >>>            :conditions => {:title => params[:q]},
> > >>>            :page => params[:page] || 1,
> > >>>            :index => 'product_core', #I have another index in the
> > >>> same model
> > >>>            :group_by => 'num_format',
> > >>> #would like to say  :group_by => 'num_title, num_format',
> > >>>            :group_function => :attr,
> > >>>            :group_clause   => "supplier_count desc"
> > >>>            )
>
> > >>> Is there something else I should be doing?
>
> > >>> Any suggestions welcome!
>
> > >>> Many thanks
>
> > >>> Shaun
>
> > >>> --
> > >>> 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