public class TopKFacetResultsHandler extends PartitionsFacetResultsHandler
FacetRequest
. K is global
(among all results) and is defined by FacetRequest.numResults
.facetArrays, facetRequest, taxonomyReader
Constructor and Description |
---|
TopKFacetResultsHandler(TaxonomyReader taxonomyReader,
FacetRequest facetRequest,
FacetArrays facetArrays)
Construct top-K results handler.
|
Modifier and Type | Method and Description |
---|---|
IntermediateFacetResult |
fetchPartitionResult(int offset)
Fetch results of a single partition, given facet arrays for that partition,
and based on the matching documents and faceted search parameters.
|
void |
labelResult(FacetResult facetResult)
Label results according to settings in
FacetRequest , such as
FacetRequest.getNumLabel() . |
IntermediateFacetResult |
mergeResults(IntermediateFacetResult... tmpResults)
Merge results of several facet partitions.
|
FacetResult |
rearrangeFacetResult(FacetResult facetResult)
Perform any rearrangement as required on a facet result that has changed after
it was rendered.
|
FacetResult |
renderFacetResult(IntermediateFacetResult tmpResult)
Create a facet result from the temporary result.
|
compute, isSelfPartition
public TopKFacetResultsHandler(TaxonomyReader taxonomyReader, FacetRequest facetRequest, FacetArrays facetArrays)
taxonomyReader
- taxonomy readerfacetRequest
- facet request being servedpublic IntermediateFacetResult fetchPartitionResult(int offset) throws IOException
PartitionsFacetResultsHandler
fetchPartitionResult
in class PartitionsFacetResultsHandler
offset
- offset in input arrays where partition startsfacetRequest
, requests an
illegal FacetResult, like, e.g., a root node category path that
does not exist in constructor parameter taxonomyReader
.IOException
- on errorpublic IntermediateFacetResult mergeResults(IntermediateFacetResult... tmpResults) throws IOException
PartitionsFacetResultsHandler
IntermediateFacetResult
must be ones
that were created by this handler otherwise a ClassCastException
is
thrown. In addition, all passed IntermediateFacetResult
must have
the same FacetRequest
otherwise an IllegalArgumentException
is thrown.mergeResults
in class PartitionsFacetResultsHandler
tmpResults
- one or more temporary results created by this
handler.IOException
- on error.IntermediateFacetResult.getFacetRequest()
public FacetResult renderFacetResult(IntermediateFacetResult tmpResult)
PartitionsFacetResultsHandler
renderFacetResult
in class PartitionsFacetResultsHandler
tmpResult
- temporary result to be rendered as a FacetResult
public FacetResult rearrangeFacetResult(FacetResult facetResult)
PartitionsFacetResultsHandler
Possible use case: a sampling facets accumulator invoked another other facets accumulator on a sample set of documents, obtained rendered facet results, fixed their counts, and now it is needed to sort the results differently according to the fixed counts.
rearrangeFacetResult
in class PartitionsFacetResultsHandler
facetResult
- result to be rearranged.FacetResultNode.value
public void labelResult(FacetResult facetResult) throws IOException
PartitionsFacetResultsHandler
FacetRequest
, such as
FacetRequest.getNumLabel()
. Usually invoked by
StandardFacetsAccumulator.accumulate(ScoredDocIDs)
labelResult
in class PartitionsFacetResultsHandler
facetResult
- facet result to be labeled.IOException
- on errorCopyright © 2000-2013 Apache Software Foundation. All Rights Reserved.