Piete,

Thanks for the pointers and detailed info. Actually I'm aware of the
faceting feature. Faceting provides the ability to categorize the results
with the count for each category. However,I don't think that solves my
problem.

Let me give a more detailed example for my requirement:

Let's say we indexed 100 documents representing books with the following
fields:

(id, title, price, publish_date, description)

Suppose a query "title:art history"  ( We are using Solr 1.1, will use
"sort" param when migrating to 1.2.) which returns 5 results:

(25, "The History of Art", 56.0, 07-10-1995, "blah blah blah")
(54, "Art History", 38.0, 02-13-1997, "blah blah blah")
(13, "Art", 45.0, 10-05-1980, "blah blah blah")
(3, "The Art of War", 40.0, 12-12-2000, "blah blah blah")
(38, "History of Everything", 15.0, 12-31-2001, "blah blah blah")

Now my requirement is that along with these five results, I also want Solr
to return the following:

The [min, max] range for the 'price' field, in this case:  [15.0, 56.0]
The [min, max] range for the 'publish_date' field, in this case:
[10-05-1980, 12-31-2001]

I don't think faceting would give me these ranges, it can only give me
counts of ranges/values, for example if I specified facet.query of different
price ranges.

So all I can think of now is that I have to
1) make 'price' and 'publish_date' sortable in the schema;
2) after each query (which returns non-empty result set), issue two more
queries, one adding sort on 'price' to the original query, the other adding
sort on 'publish_date'. (the sort order doesn't matter).
3) get the respective min, max values of these two fields from the first and
last document returned for each of the two subsequent queries.

Is there any better way to accomplish this?


Thanks,

-Hui



On 8/7/07, Pieter Berkel <[EMAIL PROTECTED]> wrote:
>
> The functionality you are describing is called "Faceting" in Solr and can
> be
> achieved with a single query, take a look at the following wiki pages for
> more info:
>
> http://wiki.apache.org/solr/SolrFacetingOverview
> http://wiki.apache.org/solr/SimpleFacetParameters
>
> In regards to faceting date fields such as publish_date, take a look at
> https://issues.apache.org/jira/browse/SOLR-258 which was recently commited
> to the svn trunk (although not much documentation on that yet).
>
> Just a note about your query, specifying the sort order in the q parameter
> is depricated syntax, you are better to use the sort parameter for that,
> again refer to the wiki:
>
> http://wiki.apache.org/solr/CommonQueryParameters
>
> Hope this helps,
> Piete
>
>
> On 07/08/07, Yu-Hui Jin <[EMAIL PROTECTED]> wrote:
> >
> > Hi, there,
> >
> > We used Solr to index a set of documents and provide free-text search
> > functionality with sorting options on a number of fields. We have a
> > requirement that along with each search result we want to obtain the
> > ranges
> > of a few fields for the resulting documents. Here's an example:
> >
> > Let's say we indexed documents representing books with the following
> > fields:
> >
> > title, price, publish_date, description
> >
> > All of these fields are stored in the index (that can be returned); and
> > "price" and "publish_date" are sortable as well.
> >
> > Now suppose we post a query for example "title:art history;price asc",
> we
> > want to the following results:
> >
> > 1. the documents satisfying the query (which by default are returned by
> > solr);
> > 2. the range of the price field of the results.
> > 3. the range of the publish_date of the results.
> >
> > My question is -- can solr return all of the above data within one
> > response?  If not, all I can think of is to issue one more query that
> > "title:art history;publish_date asc" (or desc) so that I can use the
> first
> > and last result of this query to get the range for publish_date.  (Due
> to
> > the original query already asking to sort by price, we are lucky in this
> > case that we don't have to issue another query to get the range of
> price.
> > But then this does not apply in the general case.)
> >
> > Any idea is appreciated!
> >
> > --
> > Regards,
> >
> > -Hui
> >
>



-- 
Regards,

-Hui

Reply via email to