From 52be944b5f62a10b632bacc0c702c104156fd33c Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Sun, 7 Nov 2021 18:00:11 +0100 Subject: [PATCH] Bugfixes --- .../it/cavallium/dbengine/client/Indicizer.java | 14 ++++++++++++++ .../cavallium/dbengine/client/LuceneIndexImpl.java | 11 ++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/main/java/it/cavallium/dbengine/client/Indicizer.java b/src/main/java/it/cavallium/dbengine/client/Indicizer.java index f7661f5..d92482c 100644 --- a/src/main/java/it/cavallium/dbengine/client/Indicizer.java +++ b/src/main/java/it/cavallium/dbengine/client/Indicizer.java @@ -3,6 +3,8 @@ package it.cavallium.dbengine.client; import it.cavallium.dbengine.database.LLIndexRequest; import it.cavallium.dbengine.database.LLUpdateDocument; import it.cavallium.dbengine.database.LLTerm; +import it.cavallium.dbengine.database.LLUpdateFields; +import it.cavallium.dbengine.database.LLUtils; import java.util.Set; import org.jetbrains.annotations.NotNull; import reactor.core.publisher.Flux; @@ -16,6 +18,18 @@ public abstract class Indicizer { */ public abstract @NotNull Mono toIndexRequest(@NotNull T key, @NotNull U value); + public final @NotNull Mono toDocument(@NotNull T key, @NotNull U value) { + return toIndexRequest(key, value).map(req -> { + if (req instanceof LLUpdateFields updateFields) { + return new LLUpdateDocument(updateFields.items()); + } else if (req instanceof LLUpdateDocument updateDocument) { + return updateDocument; + } else { + throw new UnsupportedOperationException("Unexpected request type: " + req); + } + }); + } + public abstract @NotNull LLTerm toIndex(@NotNull T key); public abstract @NotNull String getKeyFieldName(); diff --git a/src/main/java/it/cavallium/dbengine/client/LuceneIndexImpl.java b/src/main/java/it/cavallium/dbengine/client/LuceneIndexImpl.java index 47adb33..911fa49 100644 --- a/src/main/java/it/cavallium/dbengine/client/LuceneIndexImpl.java +++ b/src/main/java/it/cavallium/dbengine/client/LuceneIndexImpl.java @@ -13,15 +13,12 @@ import java.util.Map.Entry; import java.util.Set; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.warp.commonutils.log.Logger; -import org.warp.commonutils.log.LoggerFactory; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import reactor.util.function.Tuple2; public class LuceneIndexImpl implements LuceneIndex { - private static final Logger log = LoggerFactory.getLogger(LuceneIndex.class); private final LLLuceneIndex luceneIndex; private final Indicizer indicizer; @@ -41,7 +38,7 @@ public class LuceneIndexImpl implements LuceneIndex { @Override public Mono addDocument(T key, U value) { return indicizer - .toIndexRequest(key, value) + .toDocument(key, value) .flatMap(doc -> luceneIndex.addDocument(indicizer.toIndex(key), doc)); } @@ -50,7 +47,7 @@ public class LuceneIndexImpl implements LuceneIndex { return luceneIndex .addDocuments(entries .flatMap(entry -> indicizer - .toIndexRequest(entry.getKey(), entry.getValue()) + .toDocument(entry.getKey(), entry.getValue()) .map(doc -> Map.entry(indicizer.toIndex(entry.getKey()), doc))) ); } @@ -73,7 +70,7 @@ public class LuceneIndexImpl implements LuceneIndex { return luceneIndex .updateDocuments(entries .flatMap(entry -> indicizer - .toIndexRequest(entry.getKey(), entry.getValue()) + .toDocument(entry.getKey(), entry.getValue()) .map(doc -> Map.entry(indicizer.toIndex(entry.getKey()), doc))) .collectMap(Entry::getKey, Entry::getValue) ); @@ -124,7 +121,7 @@ public class LuceneIndexImpl implements LuceneIndex { @Override public Mono count(@Nullable CompositeSnapshot snapshot, Query query) { return this - .search(ClientQueryParams.>builder().snapshot(snapshot).query(query).limit(0).build()) + .search(ClientQueryParams.builder().snapshot(snapshot).query(query).limit(0).build()) .single() .map(searchResultKeysSend -> { try (var searchResultKeys = searchResultKeysSend.receive()) {