Perhaps the Highlighting feature will help? You could use that to see which docs have something highlighted for the field in question.

        Erik

On Mar 16, 2009, at 10:12 AM, karthik c wrote:

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



Reply via email to