[
https://issues.apache.org/jira/browse/LUCENE-9476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17183197#comment-17183197
]
Michael McCandless commented on LUCENE-9476:
--------------------------------------------
When a query computes facets, in the end it gets a set of `integer` ordinals
and counts, and must resolve those ordinals to human friendly `FacetLabels`.
There might be 10s of such lookups.
With the change in LUCENE-9450, we are creating a new `BinaryDocValues` for
every `ord to FacetLabel` lookup, but for this issue we should add a new API
that takes `int[] ordinals` or so, and then returns `FacetLabel[]`, by first
collating all ordinals into the segments (in the taxonomy index) and then
creating one `BinaryDocValues` per segment and looking up the ordinals
sequentially. This should be a sizable speedup over what we are doing in
LUCENE-9450, which is already also a bit faster than what we do in mainline now
(use stored fields).
> Add a bulk ordinal->FacetLabel API
> ----------------------------------
>
> Key: LUCENE-9476
> URL: https://issues.apache.org/jira/browse/LUCENE-9476
> Project: Lucene - Core
> Issue Type: Improvement
> Components: modules/facet
> Affects Versions: 8.6.1
> Reporter: Gautam Worah
> Priority: Minor
> Labels: performance
>
> This issue is a spillover from the
> [PR|https://github.com/apache/lucene-solr/pull/1733/files] for LUCENE 9450
> The idea here is to share a single {{BinaryDocValues}} instance per leaf per
> query instead of creating a new one each time in the
> {{DirectoryTaxonomyReader}}.
> Suggested by [~mikemccand]
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]