sgup432 commented on issue #15996:
URL: https://github.com/apache/lucene/issues/15996#issuecomment-4360147917

   Probably I can answer few of your questions 😄 
   
   >Level 0 is the "top" level with the largest blocks; higher numbered levels 
represent successively nested sub-blocks.
   
   Level-0 is actually bottom level with the smallest blocks(4096 docs each). 
Total we have 4 levels. Then level-1 comprises of 8 level-0 blocks(32K docs), 
level-2 comprises of 8 level-1 blocks(256k docs) and then finally level-3 
comprises of 8 level-2 blocks (total 2M docs). 
   
   > The skipper only really works with fields that are primary index sort keys 
(I think?). What happens if you try to use the skipper with non-sorted fields? 
Can you still read block level statistics? Maybe - but how does skipping 
function in that case?
   
   It also works for the unsorted fields. Each blocks max/min stats is 
available even for unsorted fields, though in this case you might end up 
iterating per block docs more often compared to sorted field. As with sorted 
field, you can skip docs far more efficiently.
   
   The skipper's advance skips blocks whose value range doesn't overlap the 
query range. This works on any field i.e. if a block's [minValue, maxValue] is 
entirely outside the query range, it's a NO block and gets skipped. If the 
query range fully contains the block's value range, then we simply bulk advance 
through that block. If its a partial match, we go in doc by doc matching mode 
which gets expensive.
   


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