Adrien Grand
Adrien Grand
Thanks for explaining I had not read your implementation carefully. I agree that we are doing less blocking than in the previous implementation of this, though we could still be...
> sandbox Nit: it's fine for any codec to live in `lucene/codecs` in my opinion, the bar isn't much higher than sandbox, and this allows us to put them into...
Looking at places where we used `DirectMonotonicReader`, I suspect that the main offender are doc values terms dictionaries, which maintain two `DirectMonotonicReader`s each. However, they only record every 64th and...
Sorry, I don't feel good about relying on `paddingBitsNeeded` on the read path. I suggest we close this PR, IMO the better fix would be to change the way we...
This is a draft as I need to do more work on tests and making sure that this new method cannot corrupt the state of the `SegmentTermsEnum`. But I created...
I iterated a bit on this change: - `TermsEnum#prepareSeekExact` is introduced, which only prefetches data which is later going to be needed by `TermsEnum#seekExact`. - `TermStates#build` no longer runs on...
It creates a 50GB terms dictionary while my machine only has ~28GB of RAM for the page cache, so many terms dictionary lookups result in page faults.
Now that #13408 has been merged, I could update the benchmark to simply call IndexSearcher#search. ```java import java.io.IOException; import java.io.UncheckedIOException; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.Random;...
I pushed a new approach. Instead of `prepareSeekExact` returning `void`, it now returns a `Supplier` and forbids calling any other method on `TermsEnum` until the `Supplier` has been consumed. There...
I will merge soon if there are no objections.