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