This commit is contained in:
Andrea Cavalli 2021-02-17 15:03:51 +01:00
parent 01b8b704d0
commit 7654412d20
2 changed files with 7 additions and 5 deletions

View File

@ -195,7 +195,7 @@ public class LuceneIndex<T, U> implements LLSnapshottable {
} }
public Mono<Long> count(@Nullable CompositeSnapshot snapshot, Query query) { public Mono<Long> count(@Nullable CompositeSnapshot snapshot, Query query) {
return this.search(snapshot, query, 0, null, null, null) return this.search(snapshot, query, 0, null, LLScoreMode.COMPLETE_NO_SCORES, null)
.flatMap(SearchResultKeys::totalHitsCount) .flatMap(SearchResultKeys::totalHitsCount)
.single(); .single();
} }

View File

@ -47,6 +47,7 @@ import org.apache.lucene.search.Sort;
import org.apache.lucene.search.similarities.Similarity; import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.store.Directory; import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory; import org.apache.lucene.store.FSDirectory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import reactor.core.publisher.GroupedFlux; import reactor.core.publisher.GroupedFlux;
@ -458,19 +459,19 @@ public class LLLocalLuceneIndex implements LLLuceneIndex {
@Override @Override
public Mono<LLSearchResult> search(@Nullable LLSnapshot snapshot, it.cavallium.dbengine.lucene.serializer.Query query, int limit, public Mono<LLSearchResult> search(@Nullable LLSnapshot snapshot, it.cavallium.dbengine.lucene.serializer.Query query, int limit,
@Nullable LLSort sort, LLScoreMode scoreMode, @Nullable Float minCompetitiveScore, String keyFieldName) { @Nullable LLSort sort, @NotNull LLScoreMode scoreMode, @Nullable Float minCompetitiveScore, String keyFieldName) {
return search(snapshot, query, limit, sort, scoreMode, minCompetitiveScore, return search(snapshot, query, limit, sort, scoreMode, minCompetitiveScore,
keyFieldName, false, 0, 1); keyFieldName, false, 0, 1);
} }
public Mono<LLSearchResult> distributedSearch(@Nullable LLSnapshot snapshot, it.cavallium.dbengine.lucene.serializer.Query query, int limit, public Mono<LLSearchResult> distributedSearch(@Nullable LLSnapshot snapshot, it.cavallium.dbengine.lucene.serializer.Query query, int limit,
@Nullable LLSort sort, LLScoreMode scoreMode, @Nullable Float minCompetitiveScore, String keyFieldName, long actionId, int scoreDivisor) { @Nullable LLSort sort, @NotNull LLScoreMode scoreMode, @Nullable Float minCompetitiveScore, String keyFieldName, long actionId, int scoreDivisor) {
return search(snapshot, query, limit, sort, scoreMode, minCompetitiveScore, return search(snapshot, query, limit, sort, scoreMode, minCompetitiveScore,
keyFieldName, false, actionId, scoreDivisor); keyFieldName, false, actionId, scoreDivisor);
} }
public Mono<Void> distributedPreSearch(@Nullable LLSnapshot snapshot, it.cavallium.dbengine.lucene.serializer.Query query, public Mono<Void> distributedPreSearch(@Nullable LLSnapshot snapshot, it.cavallium.dbengine.lucene.serializer.Query query,
@Nullable LLSort sort, LLScoreMode scoreMode, @Nullable Float minCompetitiveScore, String keyFieldName, long actionId) { @Nullable LLSort sort, @NotNull LLScoreMode scoreMode, @Nullable Float minCompetitiveScore, String keyFieldName, long actionId) {
return this return this
.search(snapshot, query, -1, sort, scoreMode, .search(snapshot, query, -1, sort, scoreMode,
minCompetitiveScore, keyFieldName, true, actionId, 1) minCompetitiveScore, keyFieldName, true, actionId, 1)
@ -480,11 +481,12 @@ public class LLLocalLuceneIndex implements LLLuceneIndex {
@SuppressWarnings("Convert2MethodRef") @SuppressWarnings("Convert2MethodRef")
private Mono<LLSearchResult> search(@Nullable LLSnapshot snapshot, private Mono<LLSearchResult> search(@Nullable LLSnapshot snapshot,
it.cavallium.dbengine.lucene.serializer.Query query, int limit, it.cavallium.dbengine.lucene.serializer.Query query, int limit,
@Nullable LLSort sort, LLScoreMode scoreMode, @Nullable Float minCompetitiveScore, String keyFieldName, @Nullable LLSort sort, @NotNull LLScoreMode scoreMode, @Nullable Float minCompetitiveScore, String keyFieldName,
boolean doDistributedPre, long actionId, int scoreDivisor) { boolean doDistributedPre, long actionId, int scoreDivisor) {
return acquireSearcherWrapper(snapshot, doDistributedPre, actionId) return acquireSearcherWrapper(snapshot, doDistributedPre, actionId)
.flatMap(indexSearcher -> Mono .flatMap(indexSearcher -> Mono
.fromCallable(() -> { .fromCallable(() -> {
Objects.requireNonNull(scoreMode, "ScoreMode must not be null");
checkScoringArgumentsValidity(sort, scoreMode); checkScoringArgumentsValidity(sort, scoreMode);
Query luceneQuery = QueryParser.parse(query); Query luceneQuery = QueryParser.parse(query);
Sort luceneSort = LLUtils.toSort(sort); Sort luceneSort = LLUtils.toSort(sort);