Thanks Otis... What kind of post-processing are u talking about here ? Is there any mechanism in Solr to identify which of the facet results match the query ?
karthik c http://cantspellathing.blogspot.com On Mon, Mar 16, 2009 at 6:57 PM, Otis Gospodnetic < otis_gospodne...@yahoo.com> wrote: > > If your searches are simplistic and Shalin's suggestion is not an option > for you for some reason, perhaps even something as simple as > post-processing/filtering of returned facets will work. > > Otis > -- > Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch > > > > ----- Original Message ---- > > From: karthik c <karthik...@gmail.com> > > To: solr-user@lucene.apache.org > > Sent: Monday, March 16, 2009 2:41:02 AM > > Subject: search on field to get distinct values with counts.... > > > > Hi, > > > > We have a requirement to fetch a set of distinct values of a given field > > that match the given query. We also need to fetch the number of items > > associated with each field value. I figured out a way to do this for > > single-valued fields but am not able to get it to work for multi-valued > > fields. > > > > Long Story: > > Say you have an index of movies, I would like to get a unique set of > > directors matching a query (say "john") and also the number of movies > > directed by each of them. For this example lets assume that "director" is > a > > single valued field. > > > > I came up with one approach to implement this: Search for the query > string > > in the director field and then apply faceting on the same field > (director). > > The search will limit the movie results to the ones directed by directors > > matching the query. Further, the faceting will provide a unique set of > > directors and also the count of movies associated with them. The query > will > > look something like this: > > > solr/Movie/select/?q=director:(john)&start=0&rows=0&facet=true&facet.field=raw_director > > > > This query works fine for single-valued fields. However it does not work > in > > the case of multi-valued fields, say we perform a similar search on the > > "actors" (mutli-valued) field, the query will look like: > > > solr/Movie/select/?q=actors:(john)&start=0&rows=0&facet=true&facet.field=raw_actors > > In this case, the search will again limit the movie results to the ones > in > > which actors matching the query have acted in. However while faceting the > > results on "actors", the facet results will also contain other actors > that > > have acted in the resulting movies. For eg: say we are searching for > > actors:malkovich, this will return all movies in which John Malkovich has > > acted in. When the faceting is applied on these results, the facet > results > > contain John Malkovich with the correct number of movies. But, the facet > > results also contain other actors who have acted with John Malkovich. The > > facet results for the above query look something like this: > > > > > > 49 > > 4 > > 3 > > 2 > > 2 > > 2 > > 2 > > 2 > > > > > > The other actors in the above results is obviously not what we expect to > > see, since they do match the original query (i.e. malkovich). > > > > Is there any other way I can approach this for multi-valued fields ? > > > > Thanks, > > karthik c > > http://cantspellathing.blogspot.com > >