Add lucene delta import
This commit is contained in:
parent
adf3bef488
commit
dcd7add36f
@ -2,9 +2,11 @@ package it.cavallium.dbengine.client;
|
||||
|
||||
import it.cavallium.dbengine.client.query.ClientQueryParams;
|
||||
import it.cavallium.dbengine.client.query.current.data.Query;
|
||||
import it.cavallium.dbengine.database.Delta;
|
||||
import it.cavallium.dbengine.database.LLSnapshottable;
|
||||
import it.cavallium.dbengine.database.collections.Joiner.ValueGetter;
|
||||
import java.util.Map.Entry;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
@ -18,10 +20,26 @@ public interface LuceneIndex<T, U> extends LLSnapshottable {
|
||||
|
||||
Mono<Void> deleteDocument(T key);
|
||||
|
||||
Mono<Void> updateDocument(T key, U value);
|
||||
Mono<Void> updateDocument(T key, @NotNull U value);
|
||||
|
||||
Mono<Void> updateDocuments(Flux<Entry<T, U>> entries);
|
||||
|
||||
default Mono<Void> updateOrDeleteDocument(T key, @Nullable U value) {
|
||||
if (value == null) {
|
||||
return deleteDocument(key);
|
||||
} else {
|
||||
return updateDocument(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
default Mono<Void> updateOrDeleteDocumentIfModified(T key, @NotNull Delta<U> delta) {
|
||||
if (delta.isModified()) {
|
||||
return updateOrDeleteDocument(key, delta.current());
|
||||
} else {
|
||||
return Mono.empty();
|
||||
}
|
||||
}
|
||||
|
||||
Mono<Void> deleteAll();
|
||||
|
||||
Mono<SearchResultKeys<T>> moreLikeThis(ClientQueryParams<SearchResultKey<T>> queryParams, T key, U mltDocumentValue);
|
||||
|
@ -14,6 +14,7 @@ import it.cavallium.dbengine.lucene.LuceneUtils;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
@ -61,7 +62,7 @@ public class LuceneIndexImpl<T, U> implements LuceneIndex<T, U> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<Void> updateDocument(T key, U value) {
|
||||
public Mono<Void> updateDocument(T key, @NotNull U value) {
|
||||
return indicizer
|
||||
.toDocument(key, value)
|
||||
.flatMap(doc -> luceneIndex.updateDocument(indicizer.toIndex(key), doc));
|
||||
|
Loading…
Reference in New Issue
Block a user