iverase opened a new issue, #16071:
URL: https://github.com/apache/lucene/issues/16071

   I am working into improving the behaviour of DocValues skippers when they 
are applied to a single value, dense field that is the primary sort of an 
index. In this case, for some queries we know the result is dense so we can 
just find the minimum and maximum document of the result and create a 
DocIdSetIterator using `DocIdSetIterator.range(minDocID, maxDocID)`. This is 
the denser representation you can have for this type of iterator.
   
   The issue I am seeing is that if this iterator get cached it looses the 
density and potentially can be cached as a FixedBitSet. This feels pretty 
wasteful and in addition it looses some characteristics, for example if cached 
as a RoaringDocIdSet, then the iterator produced does not implement 
#docIdRunEnd so you need to iterate one document at a time.
   
   I cannot see a way to detect a scorer is dense so I wonder if someone has 
suggestions on how to improve this case. Maybe we should not cache such queries 
although caching still helps here.
   


-- 
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]

Reply via email to