2021-07-06 01:30:37 +02:00
|
|
|
package it.cavallium.dbengine.lucene.searcher;
|
|
|
|
|
|
|
|
import it.cavallium.dbengine.client.query.QueryParser;
|
|
|
|
import it.cavallium.dbengine.client.query.current.data.QueryParams;
|
2021-08-04 01:12:39 +02:00
|
|
|
import it.cavallium.dbengine.client.query.current.data.TotalHitsCount;
|
2021-07-06 01:30:37 +02:00
|
|
|
import org.apache.lucene.search.IndexSearcher;
|
|
|
|
import reactor.core.publisher.Flux;
|
|
|
|
import reactor.core.publisher.Mono;
|
|
|
|
import reactor.core.scheduler.Scheduler;
|
|
|
|
|
|
|
|
public class CountLuceneLocalSearcher implements LuceneLocalSearcher {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Mono<LuceneSearchResult> collect(IndexSearcher indexSearcher,
|
2021-07-10 20:52:01 +02:00
|
|
|
Mono<Void> releaseIndexSearcher,
|
2021-07-06 01:30:37 +02:00
|
|
|
LocalQueryParams queryParams,
|
2021-09-04 16:42:47 +02:00
|
|
|
String keyFieldName) {
|
2021-07-06 01:30:37 +02:00
|
|
|
return Mono
|
|
|
|
.fromCallable(() -> new LuceneSearchResult(
|
2021-08-04 01:12:39 +02:00
|
|
|
TotalHitsCount.of(indexSearcher.count(queryParams.query()), true),
|
2021-07-10 20:52:01 +02:00
|
|
|
Flux.empty(),
|
|
|
|
releaseIndexSearcher)
|
2021-09-04 16:42:47 +02:00
|
|
|
);
|
2021-07-06 01:30:37 +02:00
|
|
|
}
|
|
|
|
}
|