gsmiller commented on a change in pull request #443:
URL: https://github.com/apache/lucene/pull/443#discussion_r751451039
##########
File path: lucene/facet/src/java/org/apache/lucene/facet/FacetsConfig.java
##########
@@ -409,9 +410,26 @@ private void processFacetFields(
indexDrillDownTerms(doc, indexFieldName, dimConfig, facetLabel);
}
- // Facet counts:
- // DocValues are considered stored fields:
- doc.add(new BinaryDocValuesField(indexFieldName,
dedupAndEncode(ordinals.get())));
+ // Store the taxonomy ordinals associated with each doc. Prefer to use
SortedNumericDocValues
+ // but "fall back" to a custom binary format to maintain backwards
compatibility with Lucene 8
+ // indexes.
+ if (taxoWriter.useNumericDocValuesForOrdinals()) {
+ // Dedupe and encode the ordinals. It's not important that we sort here
+ // (SortedNumericDocValuesField will handle this internally), but we
Review comment:
Did a little digging and it appears the sorting is done using
`Arrays.sort` (from
[here](https://github.com/apache/lucene/blob/main/lucene/core/src/java/org/apache/lucene/index/SortedNumericDocValuesWriter.java#L75)),
which is a flavor of quicksort. I'm not deeply familiar with the current
sorting implementation but from a quick glance, it looks to me like it's trying
to be efficient for already-sorted cases. If anyone knows better, I'd be
curious to learn more (just haven't had time to dive really deep on this).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]