Hi James, Good idea! I'll add a getAsFilterQuery method to the patch.
Martijn On 6 June 2011 19:32, Jamie Johnson <jej2...@gmail.com> wrote: > 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 > >> > > > > > -- Met vriendelijke groet, Martijn van Groningen