mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-23 21:18:58 +00:00
(index-client) Clean up index client code
Improve error handling. This should be a relatively rare case, but we don't want one bad index partition to blow up the entire query.
This commit is contained in:
parent
bc2c2061f2
commit
f2567677e8
@ -21,6 +21,7 @@ import java.util.concurrent.CompletableFuture;
|
|||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class IndexClient {
|
public class IndexClient {
|
||||||
@ -65,7 +66,13 @@ public class IndexClient {
|
|||||||
totalNumResults.addAndGet(ret.size());
|
totalNumResults.addAndGet(ret.size());
|
||||||
return ret;
|
return ret;
|
||||||
}))
|
}))
|
||||||
.map(CompletableFuture::join)
|
.mapMulti((CompletableFuture<List<RpcDecoratedResultItem>> fut, Consumer<List<RpcDecoratedResultItem>> c) ->{
|
||||||
|
try {
|
||||||
|
c.accept(fut.join());
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("Error while fetching results", e);
|
||||||
|
}
|
||||||
|
})
|
||||||
.flatMap(List::stream)
|
.flatMap(List::stream)
|
||||||
.filter(item -> !isBlacklisted(item))
|
.filter(item -> !isBlacklisted(item))
|
||||||
.sorted(comparator)
|
.sorted(comparator)
|
||||||
|
Loading…
Reference in New Issue
Block a user