jpountz commented on issue #13024:
URL: https://github.com/apache/lucene/issues/13024#issuecomment-1917610302

   I'm not sure I like this idea, which feels quite arbitrary: why would there 
be a big gap of matching doc IDs towards the start of the doc ID space, and not 
in the middle or towards the end?
   
   This `BitSetConjunctionDISI` was mostly added to mimic the way 
`FilteredQuery` used to work (before we replaced filters with queries and 
`FilteredQuery` with `FILTER` clauses on `BooleanQuery`) to avoid performance 
regressions. Maybe we can improve the heuristic regarding when to use it, which 
could in-turn help the case you're looking into? For instance we currently 
evaluate filters via `Bits#get` rather than `BitSet#nextSetBit` when their cost 
is greater than the minimum cost across all required clauses. In a similar 
context, `IndexOrDocValuesQuery` only uses doc values to run queries when their 
cost is 8x greater than the lead cost, maybe it would be a better threshold for 
evaluating filters via `Bits#get` as well?


-- 
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: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to