|
Hi,
I was wondering if there's a way to display facet options based on previous facet values. For example, I've seen many shopping sites where a user can facet by "Mens" or "Womens" apparel, then be shown "sizes" to facet by (for Men or Women only - whichever they chose). Is this something that would have to be handled at the application level? Vincent Vu Nguyen |
|
I think that is just sending 2 fq facet queries through. In Solr PHP I would do that with, e.g.
$params['facet'] = true; $params['facet.fields'] = array('Size'); $params['fq'] => array('sex' => array('Men', 'Women')); but yes i think you'd have to send through what the current facet query is and add it to your next drill-down On Oct 4, 2010, at 9:36 AM, Nguyen, Vincent (CDC/OD/OADS) (CTR) wrote: > Hi, > > > > I was wondering if there's a way to display facet options based on > previous facet values. For example, I've seen many shopping sites where > a user can facet by "Mens" or "Womens" apparel, then be shown "sizes" to > facet by (for Men or Women only - whichever they chose). > > > > Is this something that would have to be handled at the application > level? > > > > Vincent Vu Nguyen > > > > > |
|
Ok. Thanks for the quick response.
Vincent Vu Nguyen Division of Science Quality and Translation Office of the Associate Director for Science Centers for Disease Control and Prevention (CDC) 404-498-6154 Century Bldg 2400 Atlanta, GA 30329 -----Original Message----- From: Allistair Crossley [mailto:[hidden email]] Sent: Monday, October 04, 2010 9:40 AM To: [hidden email] Subject: Re: multi level faceting I think that is just sending 2 fq facet queries through. In Solr PHP I would do that with, e.g. $params['facet'] = true; $params['facet.fields'] = array('Size'); $params['fq'] => array('sex' => array('Men', 'Women')); but yes i think you'd have to send through what the current facet query is and add it to your next drill-down On Oct 4, 2010, at 9:36 AM, Nguyen, Vincent (CDC/OD/OADS) (CTR) wrote: > Hi, > > > > I was wondering if there's a way to display facet options based on > previous facet values. For example, I've seen many shopping sites where > a user can facet by "Mens" or "Womens" apparel, then be shown "sizes" to > facet by (for Men or Women only - whichever they chose). > > > > Is this something that would have to be handled at the application > level? > > > > Vincent Vu Nguyen > > > > > |
|
Yes, by adding fq back into the main query you will get results increasingly filtered each time.
You may run into an issue if you are displaying facet counts, as the facet part of the query will also obey the increasingly filtered fq, and so not display counts for other categories anymore from the chosen facet (depends if you need to display counts from a facet once the first value from the facet has been chosen if you get my drift). Local params are a way to deal with this by not subjecting the facet count to the same fq restriction (but allowing the search results to obey it). -----Original Message----- From: Nguyen, Vincent (CDC/OD/OADS) (CTR) [mailto:[hidden email]] Sent: Mon 04/10/2010 16:34 To: [hidden email] Subject: RE: multi level faceting Ok. Thanks for the quick response. Vincent Vu Nguyen Division of Science Quality and Translation Office of the Associate Director for Science Centers for Disease Control and Prevention (CDC) 404-498-6154 Century Bldg 2400 Atlanta, GA 30329 -----Original Message----- From: Allistair Crossley [mailto:[hidden email]] Sent: Monday, October 04, 2010 9:40 AM To: [hidden email] Subject: Re: multi level faceting I think that is just sending 2 fq facet queries through. In Solr PHP I would do that with, e.g. $params['facet'] = true; $params['facet.fields'] = array('Size'); $params['fq'] => array('sex' => array('Men', 'Women')); but yes i think you'd have to send through what the current facet query is and add it to your next drill-down On Oct 4, 2010, at 9:36 AM, Nguyen, Vincent (CDC/OD/OADS) (CTR) wrote: > Hi, > > > > I was wondering if there's a way to display facet options based on > previous facet values. For example, I've seen many shopping sites where > a user can facet by "Mens" or "Womens" apparel, then be shown "sizes" to > facet by (for Men or Women only - whichever they chose). > > > > Is this something that would have to be handled at the application > level? > > > > Vincent Vu Nguyen > > > > > If you wish to view the St. James's Place email disclaimer, please use the link below http://www.sjp.co.uk/portal/internet/SJPemaildisclaimer |
|
Hi,
I *think* this is not what Vincent was after. If I read the suggestions correctly, you are saying to use &fq=x&fq=y -- multiple fqs. But I think Vincent is wondering how to end up with something that will let him create a UI with multi-level facets (with a single request), e.g. Footwear (100) Sneakers (20) Men (1) Women (19) Dancing shoes (10) Men (0) Women (10) ... If this is what Vincent was after, I'd love to hear suggestions myself. :) Otis ---- Sematext :: http://sematext.com/ :: Solr - Lucene - Nutch Lucene ecosystem search :: http://search-lucene.com/ ----- Original Message ---- > From: Jason Brown <[hidden email]> > To: [hidden email] > Sent: Mon, October 4, 2010 11:34:56 AM > Subject: RE: multi level faceting > > Yes, by adding fq back into the main query you will get results increasingly >filtered each time. > > You may run into an issue if you are displaying facet counts, as the facet >part of the query will also obey the increasingly filtered fq, and so not >display counts for other categories anymore from the chosen facet (depends if >you need to display counts from a facet once the first value from the facet has >been chosen if you get my drift). Local params are a way to deal with this by >not subjecting the facet count to the same fq restriction (but allowing the >search results to obey it). > > > > -----Original Message----- > From: Nguyen, Vincent (CDC/OD/OADS) (CTR) [mailto:[hidden email]] > Sent: Mon 04/10/2010 16:34 > To: [hidden email] > Subject: RE: multi level faceting > > Ok. Thanks for the quick response. > > Vincent Vu Nguyen > Division of Science Quality and Translation > Office of the Associate Director for Science > Centers for Disease Control and Prevention (CDC) > 404-498-6154 > Century Bldg 2400 > Atlanta, GA 30329 > > > -----Original Message----- > From: Allistair Crossley [mailto:[hidden email]] > Sent: Monday, October 04, 2010 9:40 AM > To: [hidden email] > Subject: Re: multi level faceting > > I think that is just sending 2 fq facet queries through. In Solr PHP I > would do that with, e.g. > > $params['facet'] = true; > $params['facet.fields'] = array('Size'); > $params['fq'] => array('sex' => array('Men', 'Women')); > > but yes i think you'd have to send through what the current facet query > is and add it to your next drill-down > > On Oct 4, 2010, at 9:36 AM, Nguyen, Vincent (CDC/OD/OADS) (CTR) wrote: > > > Hi, > > > > > > > > I was wondering if there's a way to display facet options based on > > previous facet values. For example, I've seen many shopping sites > where > > a user can facet by "Mens" or "Womens" apparel, then be shown "sizes" > to > > facet by (for Men or Women only - whichever they chose). > > > > > > > > Is this something that would have to be handled at the application > > level? > > > > > > > > Vincent Vu Nguyen > > > > > > > > > > > > > > > If you wish to view the St. James's Place email disclaimer, please use the >link below > > http://www.sjp.co.uk/portal/internet/SJPemaildisclaimer > |
|
Take a look at "Mastering the Power of Faceted Search with Chris
Hostetter" (http://www.lucidimagination.com/solutions/webcasts/faceting). I think there's an example of what you're looking for there. Ephraim Ofir -----Original Message----- From: Otis Gospodnetic [mailto:[hidden email]] Sent: Tuesday, October 05, 2010 5:44 AM To: [hidden email] Subject: Re: multi level faceting Hi, I *think* this is not what Vincent was after. If I read the suggestions correctly, you are saying to use &fq=x&fq=y -- multiple fqs. But I think Vincent is wondering how to end up with something that will let him create a UI with multi-level facets (with a single request), e.g. Footwear (100) Sneakers (20) Men (1) Women (19) Dancing shoes (10) Men (0) Women (10) ... If this is what Vincent was after, I'd love to hear suggestions myself. :) Otis ---- Sematext :: http://sematext.com/ :: Solr - Lucene - Nutch Lucene ecosystem search :: http://search-lucene.com/ ----- Original Message ---- > From: Jason Brown <[hidden email]> > To: [hidden email] > Sent: Mon, October 4, 2010 11:34:56 AM > Subject: RE: multi level faceting > > Yes, by adding fq back into the main query you will get results increasingly >filtered each time. > > You may run into an issue if you are displaying facet counts, as the facet >part of the query will also obey the increasingly filtered fq, and so not >display counts for other categories anymore from the chosen facet (depends if >you need to display counts from a facet once the first value from the facet has >been chosen if you get my drift). Local params are a way to deal with this by >not subjecting the facet count to the same fq restriction (but allowing the >search results to obey it). > > > > -----Original Message----- > From: Nguyen, Vincent (CDC/OD/OADS) (CTR) [mailto:[hidden email]] > Sent: Mon 04/10/2010 16:34 > To: [hidden email] > Subject: RE: multi level faceting > > Ok. Thanks for the quick response. > > Vincent Vu Nguyen > Division of Science Quality and Translation > Office of the Associate Director for Science > Centers for Disease Control and Prevention (CDC) > 404-498-6154 > Century Bldg 2400 > Atlanta, GA 30329 > > > -----Original Message----- > From: Allistair Crossley [mailto:[hidden email]] > Sent: Monday, October 04, 2010 9:40 AM > To: [hidden email] > Subject: Re: multi level faceting > > I think that is just sending 2 fq facet queries through. In Solr PHP > would do that with, e.g. > > $params['facet'] = true; > $params['facet.fields'] = array('Size'); > $params['fq'] => array('sex' => array('Men', 'Women')); > > but yes i think you'd have to send through what the current facet query > is and add it to your next drill-down > > On Oct 4, 2010, at 9:36 AM, Nguyen, Vincent (CDC/OD/OADS) (CTR) wrote: > > > Hi, > > > > > > > > I was wondering if there's a way to display facet options based on > > previous facet values. For example, I've seen many shopping sites > where > > a user can facet by "Mens" or "Womens" apparel, then be shown "sizes" > to > > facet by (for Men or Women only - whichever they chose). > > > > > > > > Is this something that would have to be handled at the application > > level? > > > > > > > > Vincent Vu Nguyen > > > > > > > > > > > > > > > If you wish to view the St. James's Place email disclaimer, please >link below > > http://www.sjp.co.uk/portal/internet/SJPemaildisclaimer > |
|
also take a look at:
http://wiki.apache.org/solr/HierarchicalFaceting + SOLR-64, SOLR-792 + http://markmail.org/message/jxbw2m5a6zq5jhlp Regards, Peter. > Take a look at "Mastering the Power of Faceted Search with Chris > Hostetter" > (http://www.lucidimagination.com/solutions/webcasts/faceting). I think > there's an example of what you're looking for there. > > Ephraim Ofir > > -----Original Message----- > From: Otis Gospodnetic [mailto:[hidden email]] > Sent: Tuesday, October 05, 2010 5:44 AM > To: [hidden email] > Subject: Re: multi level faceting > > Hi, > > I *think* this is not what Vincent was after. If I read the suggestions > > correctly, you are saying to use &fq=x&fq=y -- multiple fqs. > But I think Vincent is wondering how to end up with something that will > let him > create a UI with multi-level facets (with a single request), e.g. > > Footwear (100) > Sneakers (20) > Men (1) > Women (19) > > Dancing shoes (10) > Men (0) > Women (10) > ... > > If this is what Vincent was after, I'd love to hear suggestions myself. > :) > > Otis > ---- > Sematext :: http://sematext.com/ :: Solr - Lucene - Nutch > Lucene ecosystem search :: http://search-lucene.com/ > > > > ----- Original Message ---- > >> From: Jason Brown <[hidden email]> >> To: [hidden email] >> Sent: Mon, October 4, 2010 11:34:56 AM >> Subject: RE: multi level faceting >> >> Yes, by adding fq back into the main query you will get results >> > increasingly > >> filtered each time. >> >> You may run into an issue if you are displaying facet counts, as the >> > facet > >> part of the query will also obey the increasingly filtered fq, and so >> > not > >> display counts for other categories anymore from the chosen facet >> > (depends if > >> you need to display counts from a facet once the first value from the >> > facet has > >> been chosen if you get my drift). Local params are a way to deal with >> > this by > >> not subjecting the facet count to the same fq restriction (but >> > allowing the > >> search results to obey it). >> >> >> >> -----Original Message----- >> From: Nguyen, Vincent (CDC/OD/OADS) (CTR) [mailto:[hidden email]] >> Sent: Mon 04/10/2010 16:34 >> To: [hidden email] >> Subject: RE: multi level faceting >> >> Ok. Thanks for the quick response. >> >> Vincent Vu Nguyen >> Division of Science Quality and Translation >> Office of the Associate Director for Science >> Centers for Disease Control and Prevention (CDC) >> 404-498-6154 >> Century Bldg 2400 >> Atlanta, GA 30329 >> >> >> -----Original Message----- >> From: Allistair Crossley [mailto:[hidden email]] >> Sent: Monday, October 04, 2010 9:40 AM >> To: [hidden email] >> Subject: Re: multi level faceting >> >> I think that is just sending 2 fq facet queries through. In Solr PHP >> > I > >> would do that with, e.g. >> >> $params['facet'] = true; >> $params['facet.fields'] = array('Size'); >> $params['fq'] => array('sex' => array('Men', 'Women')); >> >> but yes i think you'd have to send through what the current facet >> > query > >> is and add it to your next drill-down >> >> On Oct 4, 2010, at 9:36 AM, Nguyen, Vincent (CDC/OD/OADS) (CTR) >> > wrote: > >> >>> Hi, >>> >>> >>> >>> I was wondering if there's a way to display facet options based on >>> previous facet values. For example, I've seen many shopping sites >>> >> where >> >>> a user can facet by "Mens" or "Womens" apparel, then be shown >>> > "sizes" > >> to >> >>> facet by (for Men or Women only - whichever they chose). >>> >>> >>> >>> Is this something that would have to be handled at the application >>> level? >>> >>> >>> >>> Vincent Vu Nguyen >>> >>> >>> >>> >>> >>> >> >> >> >> If you wish to view the St. James's Place email disclaimer, please >> > use the > >> link below >> >> http://www.sjp.co.uk/portal/internet/SJPemaildisclaimer >> >> > |
|
In reply to this post by Otis Gospodnetic-2
Just to clarify, the effect I was look for was this.
Sneakers Men (22) Women (43) AFTER a user filters by one of those, they would be presented with a NEW facet field such as Sneakers Men Size 7 Size 7 Size 7 Vincent Vu Nguyen -----Original Message----- From: Otis Gospodnetic [mailto:[hidden email]] Sent: Monday, October 04, 2010 11:44 PM To: [hidden email] Subject: Re: multi level faceting Hi, I *think* this is not what Vincent was after. If I read the suggestions correctly, you are saying to use &fq=x&fq=y -- multiple fqs. But I think Vincent is wondering how to end up with something that will let him create a UI with multi-level facets (with a single request), e.g. Footwear (100) Sneakers (20) Men (1) Women (19) Dancing shoes (10) Men (0) Women (10) ... If this is what Vincent was after, I'd love to hear suggestions myself. :) Otis ---- Sematext :: http://sematext.com/ :: Solr - Lucene - Nutch Lucene ecosystem search :: http://search-lucene.com/ ----- Original Message ---- > From: Jason Brown <[hidden email]> > To: [hidden email] > Sent: Mon, October 4, 2010 11:34:56 AM > Subject: RE: multi level faceting > > Yes, by adding fq back into the main query you will get results increasingly >filtered each time. > > You may run into an issue if you are displaying facet counts, as the facet >part of the query will also obey the increasingly filtered fq, and so not >display counts for other categories anymore from the chosen facet (depends if >you need to display counts from a facet once the first value from the facet has >been chosen if you get my drift). Local params are a way to deal with this by >not subjecting the facet count to the same fq restriction (but allowing the >search results to obey it). > > > > -----Original Message----- > From: Nguyen, Vincent (CDC/OD/OADS) (CTR) [mailto:[hidden email]] > Sent: Mon 04/10/2010 16:34 > To: [hidden email] > Subject: RE: multi level faceting > > Ok. Thanks for the quick response. > > Vincent Vu Nguyen > Division of Science Quality and Translation > Office of the Associate Director for Science > Centers for Disease Control and Prevention (CDC) > 404-498-6154 > Century Bldg 2400 > Atlanta, GA 30329 > > > -----Original Message----- > From: Allistair Crossley [mailto:[hidden email]] > Sent: Monday, October 04, 2010 9:40 AM > To: [hidden email] > Subject: Re: multi level faceting > > I think that is just sending 2 fq facet queries through. In Solr PHP > would do that with, e.g. > > $params['facet'] = true; > $params['facet.fields'] = array('Size'); > $params['fq'] => array('sex' => array('Men', 'Women')); > > but yes i think you'd have to send through what the current facet query > is and add it to your next drill-down > > On Oct 4, 2010, at 9:36 AM, Nguyen, Vincent (CDC/OD/OADS) (CTR) wrote: > > > Hi, > > > > > > > > I was wondering if there's a way to display facet options based on > > previous facet values. For example, I've seen many shopping sites > where > > a user can facet by "Mens" or "Womens" apparel, then be shown "sizes" > to > > facet by (for Men or Women only - whichever they chose). > > > > > > > > Is this something that would have to be handled at the application > > level? > > > > > > > > Vincent Vu Nguyen > > > > > > > > > > > > > > > If you wish to view the St. James's Place email disclaimer, please >link below > > http://www.sjp.co.uk/portal/internet/SJPemaildisclaimer > |
|
In reply to this post by Nguyen, Vincent (CDC/OD/OADS) (CTR)
Nguyen, Vincent (CDC/OD/OADS) (CTR) would like to recall the message, "multi level faceting".
|
|
In reply to this post by Otis Gospodnetic-2
Just to clarify, the effect I was look for was this.
Sneakers Men (22) Women (43) AFTER a user filters by one of those, they would be presented with a NEW facet field such as Sneakers Men Size 7 (10) Size 8 (11) Size 9 (23) Vincent Vu Nguyen -----Original Message----- From: Otis Gospodnetic [mailto:[hidden email]] Sent: Monday, October 04, 2010 11:44 PM To: [hidden email] Subject: Re: multi level faceting Hi, I *think* this is not what Vincent was after. If I read the suggestions correctly, you are saying to use &fq=x&fq=y -- multiple fqs. But I think Vincent is wondering how to end up with something that will let him create a UI with multi-level facets (with a single request), e.g. Footwear (100) Sneakers (20) Men (1) Women (19) Dancing shoes (10) Men (0) Women (10) ... If this is what Vincent was after, I'd love to hear suggestions myself. :) Otis ---- Sematext :: http://sematext.com/ :: Solr - Lucene - Nutch Lucene ecosystem search :: http://search-lucene.com/ ----- Original Message ---- > From: Jason Brown <[hidden email]> > To: [hidden email] > Sent: Mon, October 4, 2010 11:34:56 AM > Subject: RE: multi level faceting > > Yes, by adding fq back into the main query you will get results increasingly >filtered each time. > > You may run into an issue if you are displaying facet counts, as the facet >part of the query will also obey the increasingly filtered fq, and so not >display counts for other categories anymore from the chosen facet (depends if >you need to display counts from a facet once the first value from the facet has >been chosen if you get my drift). Local params are a way to deal with this by >not subjecting the facet count to the same fq restriction (but allowing the >search results to obey it). > > > > -----Original Message----- > From: Nguyen, Vincent (CDC/OD/OADS) (CTR) [mailto:[hidden email]] > Sent: Mon 04/10/2010 16:34 > To: [hidden email] > Subject: RE: multi level faceting > > Ok. Thanks for the quick response. > > Vincent Vu Nguyen > Division of Science Quality and Translation > Office of the Associate Director for Science > Centers for Disease Control and Prevention (CDC) > 404-498-6154 > Century Bldg 2400 > Atlanta, GA 30329 > > > -----Original Message----- > From: Allistair Crossley [mailto:[hidden email]] > Sent: Monday, October 04, 2010 9:40 AM > To: [hidden email] > Subject: Re: multi level faceting > > I think that is just sending 2 fq facet queries through. In Solr PHP > would do that with, e.g. > > $params['facet'] = true; > $params['facet.fields'] = array('Size'); > $params['fq'] => array('sex' => array('Men', 'Women')); > > but yes i think you'd have to send through what the current facet query > is and add it to your next drill-down > > On Oct 4, 2010, at 9:36 AM, Nguyen, Vincent (CDC/OD/OADS) (CTR) wrote: > > > Hi, > > > > > > > > I was wondering if there's a way to display facet options based on > > previous facet values. For example, I've seen many shopping sites > where > > a user can facet by "Mens" or "Womens" apparel, then be shown "sizes" > to > > facet by (for Men or Women only - whichever they chose). > > > > > > > > Is this something that would have to be handled at the application > > level? > > > > > > > > Vincent Vu Nguyen > > > > > > > > > > > > > > > If you wish to view the St. James's Place email disclaimer, please >link below > > http://www.sjp.co.uk/portal/internet/SJPemaildisclaimer > |
|
I've a similar problem with a project I'm working on now. I am holding out for either SOLR-64 or SOLR-792 being a bit more mature before I need the functionality but if not I was thinking I could do multi-level faceting by indexing the data as a "String" like this:
id: 1 SHOE: Sneakers|Men|Size 7 id: 2 SHOE: Sneakers|Men|Size 8 id: 3 SHOE: Sneakers|Women|Size 6 etc and then in the UI, show just up to the first delimiter (you'll have to sum the counts in the UI too). Once the user clicks on "Sneakers", you would then add fq=SHOE:Sneakers|* to the query and then show the values up to the 2nd delimiter, etc. Alternatively, if you didn't want to use a wildcard query, you could index each level separately like this: id: 1 SHOE1: Sneakers SHOE2: Sneakers|Men SHOE3: Sneakers|Men|Size 7 Then after the user clicks on the 1st level, fq on SHOE1 and show SHOE2, etc. This wouldn't work so well if you had more than a few levels in your hierarchy. I haven't actually tried this and like I said I'm hoping I could just use a patch (really I hope 3.x gets released GA with the functionality but I won't hold my breath...) But I do think this would work in a pinch if need be. James Dyer E-Commerce Systems Ingram Content Group (615) 213-4311 -----Original Message----- From: Nguyen, Vincent (CDC/OD/OADS) (CTR) [mailto:[hidden email]] Sent: Tuesday, October 05, 2010 8:22 AM To: [hidden email] Subject: RE: multi level faceting Just to clarify, the effect I was look for was this. Sneakers Men (22) Women (43) AFTER a user filters by one of those, they would be presented with a NEW facet field such as Sneakers Men Size 7 (10) Size 8 (11) Size 9 (23) Vincent Vu Nguyen -----Original Message----- From: Otis Gospodnetic [mailto:[hidden email]] Sent: Monday, October 04, 2010 11:44 PM To: [hidden email] Subject: Re: multi level faceting Hi, I *think* this is not what Vincent was after. If I read the suggestions correctly, you are saying to use &fq=x&fq=y -- multiple fqs. But I think Vincent is wondering how to end up with something that will let him create a UI with multi-level facets (with a single request), e.g. Footwear (100) Sneakers (20) Men (1) Women (19) Dancing shoes (10) Men (0) Women (10) ... If this is what Vincent was after, I'd love to hear suggestions myself. :) Otis ---- Sematext :: http://sematext.com/ :: Solr - Lucene - Nutch Lucene ecosystem search :: http://search-lucene.com/ ----- Original Message ---- > From: Jason Brown <[hidden email]> > To: [hidden email] > Sent: Mon, October 4, 2010 11:34:56 AM > Subject: RE: multi level faceting > > Yes, by adding fq back into the main query you will get results increasingly >filtered each time. > > You may run into an issue if you are displaying facet counts, as the facet >part of the query will also obey the increasingly filtered fq, and so not >display counts for other categories anymore from the chosen facet (depends if >you need to display counts from a facet once the first value from the facet has >been chosen if you get my drift). Local params are a way to deal with this by >not subjecting the facet count to the same fq restriction (but allowing the >search results to obey it). > > > > -----Original Message----- > From: Nguyen, Vincent (CDC/OD/OADS) (CTR) [mailto:[hidden email]] > Sent: Mon 04/10/2010 16:34 > To: [hidden email] > Subject: RE: multi level faceting > > Ok. Thanks for the quick response. > > Vincent Vu Nguyen > Division of Science Quality and Translation > Office of the Associate Director for Science > Centers for Disease Control and Prevention (CDC) > 404-498-6154 > Century Bldg 2400 > Atlanta, GA 30329 > > > -----Original Message----- > From: Allistair Crossley [mailto:[hidden email]] > Sent: Monday, October 04, 2010 9:40 AM > To: [hidden email] > Subject: Re: multi level faceting > > I think that is just sending 2 fq facet queries through. In Solr PHP > would do that with, e.g. > > $params['facet'] = true; > $params['facet.fields'] = array('Size'); > $params['fq'] => array('sex' => array('Men', 'Women')); > > but yes i think you'd have to send through what the current facet query > is and add it to your next drill-down > > On Oct 4, 2010, at 9:36 AM, Nguyen, Vincent (CDC/OD/OADS) (CTR) wrote: > > > Hi, > > > > > > > > I was wondering if there's a way to display facet options based on > > previous facet values. For example, I've seen many shopping sites > where > > a user can facet by "Mens" or "Womens" apparel, then be shown "sizes" > to > > facet by (for Men or Women only - whichever they chose). > > > > > > > > Is this something that would have to be handled at the application > > level? > > > > > > > > Vincent Vu Nguyen > > > > > > > > > > > > > > > If you wish to view the St. James's Place email disclaimer, please >link below > > http://www.sjp.co.uk/portal/internet/SJPemaildisclaimer > |
|
Hi,
there is a solution without the patch. Here it should be explained: http://www.lucidimagination.com/blog/2010/08/11/stumped-with-solr-chris-hostetter-of-lucene-pmc-at-lucene-revolution/ If not, I will do on 9.10.2010 ;-) Regards, Peter. > I've a similar problem with a project I'm working on now. I am holding out for either SOLR-64 or SOLR-792 being a bit more mature before I need the functionality but if not I was thinking I could do multi-level faceting by indexing the data as a "String" like this: > > id: 1 > SHOE: Sneakers|Men|Size 7 > > id: 2 > SHOE: Sneakers|Men|Size 8 > > id: 3 > SHOE: Sneakers|Women|Size 6 > > etc > > and then in the UI, show just up to the first delimiter (you'll have to sum the counts in the UI too). Once the user clicks on "Sneakers", you would then add fq=SHOE:Sneakers|* to the query and then show the values up to the 2nd delimiter, etc. > > Alternatively, if you didn't want to use a wildcard query, you could index each level separately like this: > > id: 1 > SHOE1: Sneakers > SHOE2: Sneakers|Men > SHOE3: Sneakers|Men|Size 7 > > Then after the user clicks on the 1st level, fq on SHOE1 and show SHOE2, etc. This wouldn't work so well if you had more than a few levels in your hierarchy. > > I haven't actually tried this and like I said I'm hoping I could just use a patch (really I hope 3.x gets released GA with the functionality but I won't hold my breath...) But I do think this would work in a pinch if need be. > > James Dyer > E-Commerce Systems > Ingram Content Group > (615) 213-4311 > > > -----Original Message----- > From: Nguyen, Vincent (CDC/OD/OADS) (CTR) [mailto:[hidden email]] > Sent: Tuesday, October 05, 2010 8:22 AM > To: [hidden email] > Subject: RE: multi level faceting > > Just to clarify, the effect I was look for was this. > > Sneakers > Men (22) > Women (43) > > AFTER a user filters by one of those, they would be presented with a NEW > facet field such as > > Sneakers > Men > Size 7 (10) > Size 8 (11) > Size 9 (23) > > Vincent Vu Nguyen > > -----Original Message----- > From: Otis Gospodnetic [mailto:[hidden email]] > Sent: Monday, October 04, 2010 11:44 PM > To: [hidden email] > Subject: Re: multi level faceting > > Hi, > > I *think* this is not what Vincent was after. If I read the suggestions > > correctly, you are saying to use &fq=x&fq=y -- multiple fqs. > But I think Vincent is wondering how to end up with something that will > let him > create a UI with multi-level facets (with a single request), e.g. > > Footwear (100) > Sneakers (20) > Men (1) > Women (19) > > Dancing shoes (10) > Men (0) > Women (10) > ... > > If this is what Vincent was after, I'd love to hear suggestions myself. > :) > > Otis > ---- > Sematext :: http://sematext.com/ :: Solr - Lucene - Nutch > Lucene ecosystem search :: http://search-lucene.com/ > > > > ----- Original Message ---- > >> From: Jason Brown <[hidden email]> >> To: [hidden email] >> Sent: Mon, October 4, 2010 11:34:56 AM >> Subject: RE: multi level faceting >> >> Yes, by adding fq back into the main query you will get results >> > increasingly > >> filtered each time. >> >> You may run into an issue if you are displaying facet counts, as the >> > facet > >> part of the query will also obey the increasingly filtered fq, and so >> > not > >> display counts for other categories anymore from the chosen facet >> > (depends if > >> you need to display counts from a facet once the first value from the >> > facet has > >> been chosen if you get my drift). Local params are a way to deal with >> > this by > >> not subjecting the facet count to the same fq restriction (but >> > allowing the > >> search results to obey it). >> >> >> >> -----Original Message----- >> From: Nguyen, Vincent (CDC/OD/OADS) (CTR) [mailto:[hidden email]] >> Sent: Mon 04/10/2010 16:34 >> To: [hidden email] >> Subject: RE: multi level faceting >> >> Ok. Thanks for the quick response. >> >> Vincent Vu Nguyen >> Division of Science Quality and Translation >> Office of the Associate Director for Science >> Centers for Disease Control and Prevention (CDC) >> 404-498-6154 >> Century Bldg 2400 >> Atlanta, GA 30329 >> >> >> -----Original Message----- >> From: Allistair Crossley [mailto:[hidden email]] >> Sent: Monday, October 04, 2010 9:40 AM >> To: [hidden email] >> Subject: Re: multi level faceting >> >> I think that is just sending 2 fq facet queries through. In Solr PHP >> > I > >> would do that with, e.g. >> >> $params['facet'] = true; >> $params['facet.fields'] = array('Size'); >> $params['fq'] => array('sex' => array('Men', 'Women')); >> >> but yes i think you'd have to send through what the current facet >> > query > >> is and add it to your next drill-down >> >> On Oct 4, 2010, at 9:36 AM, Nguyen, Vincent (CDC/OD/OADS) (CTR) >> > wrote: > >> >>> Hi, >>> >>> >>> >>> I was wondering if there's a way to display facet options based on >>> previous facet values. For example, I've seen many shopping sites >>> >> where >> >>> a user can facet by "Mens" or "Womens" apparel, then be shown >>> > "sizes" > >> to >> >>> facet by (for Men or Women only - whichever they chose). >>> >>> >>> >>> Is this something that would have to be handled at the application >>> level? >>> >>> >>> >>> Vincent Vu Nguyen >>> >>> >>> >>> >>> >>> >> >> >> >> If you wish to view the St. James's Place email disclaimer, please >> > use the > >> link below >> >> http://www.sjp.co.uk/portal/internet/SJPemaildisclaimer >> >> > -- http://jetwick.com twitter search prototype |
|
Hi,
there are two relative similar solutions for this problem. I will describe one of them: * create a multivalued string field called 'category' * you have a category tree. so make sure a document gets not only the leaf category, but all categories (name or id) until the root * now facet over category with '-1' as limit * What if you want to display only the categories of one level? (e.g. if you don't want other level at a time or if they are too much). then use index the category field ala <level>_category and use facet.prefix to filter the category list * clicking on a category entry should result in a filter query ala fq=category:"selectedCategoryWithLevel" the little tricky part is now that your UI or middle tier has to parse the level e.g. 2 and the append 2+1=3 to the query: facet.prefix=3_ * if you filter the level then one question remains: Q: how can you display the path from the selected category until the root category? A: Either get the category parents via DB (which is easy if you store the category ids in solr) or get the parents from the parameter list which is a bit more complicated (in this case I think it is best to store the category names in solr). (The second approach is: instead of using facet.prefix you can use dynamic fields ala category_<level>_s) Did this explaination is missing sth. or unclear? Kind Regards, Peter. > Hi, > > there is a solution without the patch. Here it should be explained: > http://www.lucidimagination.com/blog/2010/08/11/stumped-with-solr-chris-hostetter-of-lucene-pmc-at-lucene-revolution/ > > If not, I will do on 9.10.2010 ;-) > > Regards, > Peter. > > >> I've a similar problem with a project I'm working on now. I am holding out for either SOLR-64 or SOLR-792 being a bit more mature before I need the functionality but if not I was thinking I could do multi-level faceting by indexing the data as a "String" like this: >> >> id: 1 >> SHOE: Sneakers|Men|Size 7 >> >> id: 2 >> SHOE: Sneakers|Men|Size 8 >> >> id: 3 >> SHOE: Sneakers|Women|Size 6 >> >> etc >> >> and then in the UI, show just up to the first delimiter (you'll have to sum the counts in the UI too). Once the user clicks on "Sneakers", you would then add fq=SHOE:Sneakers|* to the query and then show the values up to the 2nd delimiter, etc. >> >> Alternatively, if you didn't want to use a wildcard query, you could index each level separately like this: >> >> id: 1 >> SHOE1: Sneakers >> SHOE2: Sneakers|Men >> SHOE3: Sneakers|Men|Size 7 >> >> Then after the user clicks on the 1st level, fq on SHOE1 and show SHOE2, etc. This wouldn't work so well if you had more than a few levels in your hierarchy. >> >> I haven't actually tried this and like I said I'm hoping I could just use a patch (really I hope 3.x gets released GA with the functionality but I won't hold my breath...) But I do think this would work in a pinch if need be. >> >> James Dyer >> E-Commerce Systems >> Ingram Content Group >> (615) 213-4311 >> >> >> -----Original Message----- >> From: Nguyen, Vincent (CDC/OD/OADS) (CTR) [mailto:[hidden email]] >> Sent: Tuesday, October 05, 2010 8:22 AM >> To: [hidden email] >> Subject: RE: multi level faceting >> >> Just to clarify, the effect I was look for was this. >> >> Sneakers >> Men (22) >> Women (43) >> >> AFTER a user filters by one of those, they would be presented with a NEW >> facet field such as >> >> Sneakers >> Men >> Size 7 (10) >> Size 8 (11) >> Size 9 (23) >> >> Vincent Vu Nguyen >> >> -----Original Message----- >> From: Otis Gospodnetic [mailto:[hidden email]] >> Sent: Monday, October 04, 2010 11:44 PM >> To: [hidden email] >> Subject: Re: multi level faceting >> >> Hi, >> >> I *think* this is not what Vincent was after. If I read the suggestions >> >> correctly, you are saying to use &fq=x&fq=y -- multiple fqs. >> But I think Vincent is wondering how to end up with something that will >> let him >> create a UI with multi-level facets (with a single request), e.g. >> >> Footwear (100) >> Sneakers (20) >> Men (1) >> Women (19) >> >> Dancing shoes (10) >> Men (0) >> Women (10) >> ... >> >> If this is what Vincent was after, I'd love to hear suggestions myself. >> :) >> >> Otis >> ---- >> Sematext :: http://sematext.com/ :: Solr - Lucene - Nutch >> Lucene ecosystem search :: http://search-lucene.com/ >> >> >> >> ----- Original Message ---- >> >> >>> From: Jason Brown <[hidden email]> >>> To: [hidden email] >>> Sent: Mon, October 4, 2010 11:34:56 AM >>> Subject: RE: multi level faceting >>> >>> Yes, by adding fq back into the main query you will get results >>> >>> >> increasingly >> >> >>> filtered each time. >>> >>> You may run into an issue if you are displaying facet counts, as the >>> >>> >> facet >> >> >>> part of the query will also obey the increasingly filtered fq, and so >>> >>> >> not >> >> >>> display counts for other categories anymore from the chosen facet >>> >>> >> (depends if >> >> >>> you need to display counts from a facet once the first value from the >>> >>> >> facet has >> >> >>> been chosen if you get my drift). Local params are a way to deal with >>> >>> >> this by >> >> >>> not subjecting the facet count to the same fq restriction (but >>> >>> >> allowing the >> >> >>> search results to obey it). >>> >>> >>> >>> -----Original Message----- >>> From: Nguyen, Vincent (CDC/OD/OADS) (CTR) [mailto:[hidden email]] >>> Sent: Mon 04/10/2010 16:34 >>> To: [hidden email] >>> Subject: RE: multi level faceting >>> >>> Ok. Thanks for the quick response. >>> >>> Vincent Vu Nguyen >>> Division of Science Quality and Translation >>> Office of the Associate Director for Science >>> Centers for Disease Control and Prevention (CDC) >>> 404-498-6154 >>> Century Bldg 2400 >>> Atlanta, GA 30329 >>> >>> >>> -----Original Message----- >>> From: Allistair Crossley [mailto:[hidden email]] >>> Sent: Monday, October 04, 2010 9:40 AM >>> To: [hidden email] >>> Subject: Re: multi level faceting >>> >>> I think that is just sending 2 fq facet queries through. In Solr PHP >>> >>> >> I >> >> >>> would do that with, e.g. >>> >>> $params['facet'] = true; >>> $params['facet.fields'] = array('Size'); >>> $params['fq'] => array('sex' => array('Men', 'Women')); >>> >>> but yes i think you'd have to send through what the current facet >>> >>> >> query >> >> >>> is and add it to your next drill-down >>> >>> On Oct 4, 2010, at 9:36 AM, Nguyen, Vincent (CDC/OD/OADS) (CTR) >>> >>> >> wrote: >> >> >>> >>> >>>> Hi, >>>> >>>> >>>> >>>> I was wondering if there's a way to display facet options based on >>>> previous facet values. For example, I've seen many shopping sites >>>> >>>> >>> where >>> >>> >>>> a user can facet by "Mens" or "Womens" apparel, then be shown >>>> >>>> >> "sizes" >> >> >>> to >>> >>> >>>> facet by (for Men or Women only - whichever they chose). >>>> >>>> >>>> >>>> Is this something that would have to be handled at the application >>>> level? >>>> >>>> >>>> >>>> Vincent Vu Nguyen >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>> >>> >>> If you wish to view the St. James's Place email disclaimer, please >>> >>> >> use the >> >> >>> link below >>> >>> http://www.sjp.co.uk/portal/internet/SJPemaildisclaimer >>> >>> >>> >> >> > > -- http://jetwick.com twitter search prototype |
| Powered by Nabble | Edit this page |
