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]
