Small error, shouldn't be using this.start but should instead be using Double.parseDouble(this.getValue()); and sdf.parse(count.getValue()); respectfully.
On Mon, Jun 6, 2011 at 1:16 PM, Jamie Johnson <jej2...@gmail.com> wrote: > Thanks Martijn. I pulled your patch and it looks like what I was looking > for. The original FacetField class has a getAsFilterQuery method which > returns the criteria to use as an fq parameter, I have logic which does this > in my class which works, any chance of getting something like this added to > the patch as well? > > > public static class Numeric extends RangeFacet<Number, Number> { > > public Numeric(String name, Number start, Number end, Number gap) { > super(name, start, end, gap); > } > > public String getAsFilterQuery(){ > Double end = this.start.doubleValue() + this.gap.doubleValue() - > 1; > return this.name + ":[" + this.start + " TO " + end + "]"); > } > > > } > > > and for dates (there's a parse exception below which I am not doing > anything with currently) > > public String getAsFilterQuery(){ > RangeFacet.Date dateCount = > (RangeFacet.Date)count.getRangeFacet(); > > DateMathParser parser = new DateMathParser(TimeZone.getDefault(), > Locale.getDefault()); > SimpleDateFormat sdf = new > SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); > > parser.setNow(dateCount.getStart()); > Date end = parser.parseMath(dateCount.getGap()); > String startStr = sdf.format(dateCount.getStart()) + "Z"; > String endStr = sdf.format(end) + "Z"; > String label = startStr + " TO " + endStr; > return facetField.getName() + ":[" + label + "]"); > > } > > > On Fri, Jun 3, 2011 at 7:05 AM, Martijn v Groningen < > martijn.is.h...@gmail.com> wrote: > >> Hi Jamie, >> >> I don't know why range facets didn't make it into SolrJ. But I've recently >> opened an issue for this: >> https://issues.apache.org/jira/browse/SOLR-2523 >> >> I hope this will be committed soon. Check the patch out and see if you >> like >> it. >> >> Martijn >> >> On 2 June 2011 18:22, Jamie Johnson <jej2...@gmail.com> wrote: >> >> > Currently the range and date faceting in SolrJ acts a bit differently >> than >> > I >> > would expect. Specifically, range facets aren't parsed at all and date >> > facets end up generating filterQueries which don't have the range, just >> the >> > lower bound. Is there a reason why SolrJ doesn't support these? I have >> > written some things on my end to handle these and generate filterQueries >> > for >> > date ranges of the form dateTime:[start TO end] and I have a function >> > (which >> > I copied from the date faceting) which parses the range facets, but >> would >> > prefer not to have to maintain these myself. Is there a plan to >> implement >> > these? Also is there a plan to update FacetField to not have end be a >> > date, >> > perhaps making it a String like start so we can support date and range >> > queries? >> > >> >> >> >> -- >> Met vriendelijke groet, >> >> Martijn van Groningen >> > >