Hi, I think you are close! All you need to do is make a subclass of DrillSideways and override the buildFacetsResults method to do the range faceting on your numeric dims.
I just pushed an improvement to RangeFacetsExample.java showing how to do this: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/1e4463e3 Mike McCandless http://blog.mikemccandless.com On Fri, Feb 17, 2017 at 11:15 AM, Chitra R <chithu.r...@gmail.com> wrote: > Hey, > I have indexed "author","module_id" fields as > SortedSetDocValuesFacetField and "time", "price","salary" fields as > NumericDocValuesField. > > My Category looks like: > > *module_id > -> author > *price > > module_id and price are parent categories. After selecting any one of the > facets from module_id, sub-category ie "author" field will be shown. > > Use-case: > > 1. I have received path values from user as "module_id:1" and "price:100 TO > 500" and also need to perform drillsideways search. > > initializing drilldown query > >> DrillDownQuery drillDownQuery = new DrillDownQuery(facetsConfig, >> userGivenSearchQuery); >> drillDownQuery.add("module_id","1"); >> drillDownQuery.add("price",NumericRangeQuery.newDoubleRange("price", >> 100.0, 200.0, range.minInclusive, range.maxInclusive)); > > > hits and facets computation > >> DrillSideways sideways = new DrillSideways(searcher, facetsConfig, >> docValuesReaderState); >> DrillSideways.DrillSidewaysResult drillResult = >> sideways.search(drillDownQuery, booleanFilter, null, 10, sort, doDocScore, >> doMaxScore); >> int totalHits = drillResult.hits.totalHits(); --> it show accurate total >> hits documents >> List<FacetResult> facetResult = drillResult.facets.getAllDims(10) --> this >> line throws an exception. > > > Exception > >> >> >> >> java.lang.IllegalArgumentException: dimension "price" was not indexed >> >> at >> org.apache.lucene.facet.sortedset.SortedSetDocValuesFacetCounts.getTopChildren(SortedSetDocValuesFacetCounts.java:91) >> >> at org.apache.lucene.facet.MultiFacets.getAllDims(MultiFacets.java:74) > > > > Am I did anything wrong??? > > > Kindly post your suggestions. > > Thanks, > Chitra > > > > On Fri, Feb 17, 2017 at 9:11 PM, Michael McCandless > <luc...@mikemccandless.com> wrote: >> >> Hi, how are you instantiating your MultiFacets? You should be passing >> e.g. a LongRangeFacetCounts instance for your "time" dimension, which >> should prevent that exception. >> >> For DrillSideways, I think you must subclass, and then override >> buildFacetResult to compute your range facets, because that class >> assumes it's either indexed facets or sorted set doc values facets. >> >> Mike McCandless >> >> http://blog.mikemccandless.com >> >> >> On Fri, Feb 17, 2017 at 9:14 AM, Chitra R <chithu.r...@gmail.com> wrote: >> > Any suggestions???? Kindly help me to move forward. >> > >> > Regards, >> > Chitra >> > >> > On Wed, Feb 15, 2017 at 9:23 PM, Chitra R <chithu.r...@gmail.com> wrote: >> >> >> >> Hi, >> >> Thanks for the suggestion. But in the case of drill >> >> sideways >> >> search, retrieving allDimensions (using Facets.getAllDimension()) threw >> >> an >> >> exception which is shown below... >> >> >> >> 1. While opening DocValuesReaderState, global ordinals and ordinals >> >> Range >> >> map will be computed for '$facets' field only. >> >> 2. NumericDocValuesField never indexes under '$ facets' so ordinal >> >> RangeMap will be null for the numeric field ie 'time'. >> >> >> >>>> java.lang.IllegalArgumentException: dimension "time" was not indexed >> >>>> >> >>>> at >> >>>> >> >>>> org.apache.lucene.facet.sortedset.SortedSetDocValuesFacetCounts.getTopChildren(SortedSetDocValuesFacetCounts.java:91) >> >>>> >> >>>> t org.apache.lucene.facet.MultiFacets.getAllDims(MultiFacets.java:74) >> >> >> >> >> >> In my use case, >> >> >> >> Both string pathTraversed and Numeric PathTraversedRanges will occur. >> >> And both faceted search and drill sideways search will be used. >> >> >> >> So how can I add path-traversed numericRanges? >> >> >> >> Am I missed anything? >> >> >> >> >> >> Kindly post your suggestions. >> >> >> >> >> >> Regards, >> >> Chitra >> >> >> >> On Wed, Feb 15, 2017 at 3:28 PM, Michael McCandless >> >> <luc...@mikemccandless.com> wrote: >> >>> >> >>> Hi, have a look at the RangeFacetsExample.java under the lucene/demo >> >>> module... it shows how to do this. >> >>> >> >>> Mike McCandless >> >>> >> >>> http://blog.mikemccandless.com >> >>> >> >>> >> >>> On Tue, Feb 14, 2017 at 12:07 PM, Chitra R <chithu.r...@gmail.com> >> >>> wrote: >> >>> > Hi, >> >>> > We have planned to implement both string and numeric faceting >> >>> > using >> >>> > docvalues field. >> >>> > >> >>> > For string faceting, we have added pathtraversed dimensions in >> >>> > drilldownquery. But for numeric faceting , how and where can we add >> >>> > pathtraversed ranges during nextlevel faceted search.? >> >>> > And which is the better way to add pathtraversed ranges >> >>> > ( ie adding pathtraversed ranges in numericRangeQuery or >> >>> > adding pathtraversed ranges in filter).??Or Any other solution.??? >> >>> > >> >>> > Thanks & Regards, >> >>> > Chitra >> >>> > >> >>> > >> >>> > Sent from my iPhone >> >>> > >> >>> > --------------------------------------------------------------------- >> >>> > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org >> >>> > For additional commands, e-mail: java-user-h...@lucene.apache.org >> >>> > >> >> >> >> >> > > > --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org