Я знаю, что не очень хороший вкус отвечать на свой вопрос, но в конце концов я обнаружил неприятную проблему, вызвавшую эту ошибку.
Директива, используемая для настройки solr для конкретного источника данных, выглядит следующим образом:
<dataSource type="JdbcDataSource" driver="org.sqlite.JDBC" url="jdbc:sqlite:/foo.db"/>
По умолчанию класс JdbcDataSource считывает атрибут batchSize этого узла XML и предполагает, что для него установлено значение500, если не указано иное.Итак, вышеприведенное фактически было эквивалентно:
<dataSource type="JdbcDataSource" ... batchSize="500"/>
Теперь JdbcDataSource передает batchSize методу setFetchSize базового драйвера JDBC (в данном случае, драйвера sqlite jdbc).Этот драйвер предполагает, что этот метод фактически запрашивает ограничение количества возвращаемых строк, и поэтому в этом случае никогда не возвращает более 500 строк.Я недостаточно знаком с ожидаемой семантикой API JDBC, чтобы иметь возможность определить, является ли драйвер sqlite неправильным в том, как он интерпретирует это значение, или же это - класс solr JdbcDataSource, который неверен в том, как, по его мнению, драйверы будутреагировать на этот вызов метода.
Однако я знаю, что исправление должно указывать batchSize = "0", потому что драйвер sqlite jdbc предполагает, что нулевое значение означает: "предел строки не указан".Я добавил этот совет на соответствующую страницу часто задаваемых вопросов о solr.