safer count

This commit is contained in:
Andrea Cavalli 2022-06-15 10:39:32 +02:00
parent 62692a1f9a
commit 86e48eab92

View File

@ -12,6 +12,7 @@ import it.cavallium.dbengine.database.LLSearchResultShard;
import it.cavallium.dbengine.database.LLSnapshot; import it.cavallium.dbengine.database.LLSnapshot;
import it.cavallium.dbengine.database.LLTerm; import it.cavallium.dbengine.database.LLTerm;
import it.cavallium.dbengine.database.LLUpdateDocument; import it.cavallium.dbengine.database.LLUpdateDocument;
import it.cavallium.dbengine.database.LLUtils;
import it.cavallium.dbengine.lucene.LuceneUtils; import it.cavallium.dbengine.lucene.LuceneUtils;
import it.cavallium.dbengine.lucene.collector.Buckets; import it.cavallium.dbengine.lucene.collector.Buckets;
import it.cavallium.dbengine.lucene.searcher.BucketParams; import it.cavallium.dbengine.lucene.searcher.BucketParams;
@ -146,20 +147,15 @@ public class LuceneIndexImpl<T, U> implements LuceneIndex<T, U> {
@Override @Override
public Mono<TotalHitsCount> count(@Nullable CompositeSnapshot snapshot, Query query) { public Mono<TotalHitsCount> count(@Nullable CompositeSnapshot snapshot, Query query) {
return this return Mono.usingWhen(this.search(ClientQueryParams
.search(ClientQueryParams .builder()
.builder() .snapshot(snapshot)
.snapshot(snapshot) .query(query)
.query(query) .timeout(Duration.ofSeconds(30))
.timeout(Duration.ofSeconds(30)) .limit(0)
.limit(0) .build()), searchResultKeys -> {
.build()) return Mono.just(searchResultKeys.totalHitsCount());
.single() }, LLUtils::finalizeResource);
.map(searchResultKeys -> {
try (searchResultKeys) {
return searchResultKeys.totalHitsCount();
}
});
} }
@Override @Override