diff --git a/code/services-core/index-service/src/main/java/nu/marginalia/index/svc/IndexQueryService.java b/code/services-core/index-service/src/main/java/nu/marginalia/index/svc/IndexQueryService.java index fee480bc..8b42bbd2 100644 --- a/code/services-core/index-service/src/main/java/nu/marginalia/index/svc/IndexQueryService.java +++ b/code/services-core/index-service/src/main/java/nu/marginalia/index/svc/IndexQueryService.java @@ -159,8 +159,11 @@ public class IndexQueryService { *
* Then the results are combined. * */ + private final ThreadLocal resultsArrayListPool = ThreadLocal.withInitial(TLongArrayList::new); private TLongList evaluateSubqueries(SearchParameters params) { - final TLongArrayList results = new TLongArrayList(params.fetchSize); + final TLongArrayList results = resultsArrayListPool.get(); + results.resetQuick(); + results.ensureCapacity(params.fetchSize); // These queries are various term combinations for (var subquery : params.subqueries) {