lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shai Erera <ser...@gmail.com>
Subject Re: FacetRequest include residue
Date Wed, 30 Jan 2013 06:13:50 GMT
Hi Nicola,

There might be a way to do what you want, with some coding on your part. If
you're interested in counting the top-10 of the "Brand" facet, but also
return the count of "Brand/X", even if it's not in the top-10, then what
you should do is write code similar to this:

FacetArrays facetArrays = new FacetArrays();
int[] counts = facetArrays.getIntArray(); // hold onto the counts array, so
that it's not "released" by the Collector
FacetsCollector fc = new FacetsCollector(..., facetArrays); // tell the
collector to use your array
searcher.search(q, fc);
List<FacetResults> facetResults = fc.getFacetResults();

// now you should get the FacetResult of "Brand" and check if Brand/X is in
its FacetResultNodes (top-10)
// if not, do the following:
int brandXOrdinal = taxoReader.getOrdinal(new CategoryPath("Brand", "X");
int brandXCount = counts[brandXOrdinal];

// now you can build your final result with the count of Brand/X

Hope that helps
Shai


On Tue, Jan 29, 2013 at 7:55 PM, Shai Erera <serera@gmail.com> wrote:

> Hi Nicola,
>
> How does the interface allow the user to select a facet values not from
> the top-10? How does the interface know which other facet values are there?
> Does it query the taxonomy somehow?
>
> One thing you can do is to set numResults to Integer.MAX_VALUE and
> numToLabel to 10. That way your FacetResult will have all the children up
> to the specified depth, but only the top-10 will be labeled (which can
> sometimes be costly). I'm not sure if that's what you're looking for?
>
> And again, this might be something that you can do in the UI -- add the
> value that the user selected to the list of values that are displayed,
> irregardless of what the top-10 are?
>
> Shai
>
>
> On Tue, Jan 29, 2013 at 7:29 PM, Nicola Buso <nbuso@ebi.ac.uk> wrote:
>
>> Hi,
>>
>> I have a FacetRequest with numResults setted to 10, how can I specify
>> additional facets value to add to the FacetResult?
>>
>> I try to explain the use-case:
>> - the user view 10 facet result
>> - the interface permit the user to choose a facet value not from the
>> top-10 results
>> - the user execute the query with the facet value not in the top-10
>> - I'd like to show in the list of facet value also the value selected by
>> the user.
>>
>> The only way I see I can obtain this value is execute a query where I'm
>> not restricting the number of facet values returned and I "cherry pick"
>> the facet with the value I need. Obviously it's costly.
>>
>>
>>
>> Nicola.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message