Here patch that changes PKIndexSplitter to use a Filter of "allowed" documents.
Its yet hardcoded to be a TermRangeFilter, but a second flexible version could e.g. also use NumericRangeFilter, WildCardFilter or whatever.
The test in the committed code had a bug (the second half of the index had to contain 1 more document, maybe that was the bug Mike mentioned or introduced?). The documentation says: If the midTerm is in the index, its document will be in the second index.
I think the test should also be improved to check indexes with deleted documents.
Maybe the Filter could automatically be negated by a boolean parameter to the FilterIndexReader's ctor.