То, что я хочу сделать, это именно так: Solr: How to perform a batch request to an external system from a PostFilter?Batch сбора в Solr постфильтр
и подход, который я взял похож:
-Ны вызова super.collect (DocId) в сборном метод постфильтра, но хранить все docIds во внутренней карте
-Call внешней системы в отделке() затем вызвать super.collect (DocId) для всех документов, которые проходят фильтрацию внешнего
проблемы я имеют: docId превышает maxDoc «(DocId должно быть> = 0 и < maxDoc = 100000 (получил DocId = 123456)»
Я подозреваю, что я храню местных docIds и когда читатель изменяется, docBase также изменяется таким образом, глобальный DocId, который я Построение построено в super.collect (docId) с использованием параметров docId и docBase, становится неправильным. Я попытался сохранить super.delegate.getLeafCollector (контекст) вместе с docId и вызвать super.delegate.getLeafCollector (context) .collect() вместо super.collect(), но это тоже не сработает (получилось исключение из null-указателя)