Hi,

I'm experimenting with date range faceting, and would like to use different 
gaps depending on how old the date is. But I am not sure on how to do that.

This is what I have tried, using the java API Solrj 4.0.0 and Solr 4.1.0:

solrQuery.addDateRangeFacet("scheduledate_start_tdate", date1, date2, "+1YEAR");
solrQuery.addDateRangeFacet("scheduledate_start_tdate", date3, date4, 
"+1MONTH");
solrQuery.setFacetMinCount(1);

The first date interval is between 1990 and 2011, and the second interval is 
2011 to 2014.

This results in this URL:

http://localhost:8080/solr/select?q=*:*&facet.range=scheduledate_start_tdate&facet.range=scheduledate_start_tdate&f.scheduledate_start_tdate.facet.range.start=1990-01-01T11%3A00%3A00.000Z&f.scheduledate_start_tdate.facet.range.start=2011-01-01T11%3A00%3A00.000Z&f.scheduledate_start_tdate.facet.range.end=2011-01-01T10%3A59%3A59.999Z&f.scheduledate_start_tdate.facet.range.end=2014-01-01T11%3A00%3A00.000Z&f.scheduledate_start_tdate.facet.range.gap=%2B1YEAR&f.scheduledate_start_tdate.facet.range.gap=%2B1MONTH&facet=true&facet.mincount=1&wt=xml&indent=true

And the response contains this:

<lst name="facet_ranges">
            <lst name="scheduledate_start_tdate">
                         <lst name="counts">
                                     <int name="2006-01-01T11:00:00Z">207</int>
                                     <int name="2007-01-01T11:00:00Z">818</int>
                                     <int name="2008-01-01T11:00:00Z">811</int>
                                     <int name="2009-01-01T11:00:00Z">618</int>
                                     <int name="2010-01-01T11:00:00Z">612</int>
                         </lst>
                         <str name="gap">+1YEAR</str>
                         <date name="start">1990-01-01T11:00:00Z</date>
                         <date name="end">2011-01-01T11:00:00Z</date>
            </lst>
            <lst name="scheduledate_start_tdate">
                         <lst name="counts">
                                     <int name="2006-01-01T11:00:00Z">207</int>
                                     <int name="2007-01-01T11:00:00Z">818</int>
                                     <int name="2008-01-01T11:00:00Z">811</int>
                                     <int name="2009-01-01T11:00:00Z">618</int>
                                     <int name="2010-01-01T11:00:00Z">612</int>
                         </lst>
                         <str name="gap">+1YEAR</str>
                         <date name="start">1990-01-01T11:00:00Z</date>
                         <date name="end">2011-01-01T11:00:00Z</date>
            </lst>
</lst>

Right away I notice that this is incorrect. The second facet range incorrectly 
uses the same gap, start and end-values as the first one. Can someone 
understand why? And is there a way to make this work?

Regards
/Jimi

Reply via email to