aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-03-22 09:21:56 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2024-03-22 14:14:49 +0100
commitd07bb070803a582994ee3e6d6f454f006f188e76 (patch)
treeb7d9816f7400dac65fff468d756ca372c3a4dd94
parent4ddceeddd74e1b8ea0077a3c73bad281c0e5f91c (diff)
Handle the federation config in the federation searcher.
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java8
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/VirtualSourceResolver.java6
2 files changed, 8 insertions, 6 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java b/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
index 000fef9b14b..570e76d0127 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
@@ -43,6 +43,7 @@ import java.time.Clock;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.IdentityHashMap;
import java.util.Iterator;
import java.util.LinkedHashSet;
@@ -54,6 +55,7 @@ import java.util.Optional;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
+import java.util.stream.Collectors;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.yahoo.collections.CollectionUtil.first;
@@ -88,7 +90,7 @@ public class FederationSearcher extends ForkingSearcher {
public FederationSearcher(FederationConfig config, SchemaInfo schemaInfo,
ComponentRegistry<TargetSelector> targetSelectors) {
this(createResolver(config),
- VirtualSourceResolver.of(config),
+ createVirtualSourceResolver(config),
resolveSelector(config.targetSelector(), targetSelectors),
createSchema2Clusters(schemaInfo));
}
@@ -109,6 +111,10 @@ public class FederationSearcher extends ForkingSearcher {
this.virtualSourceResolver = virtualSourceResolver;
}
+ private static VirtualSourceResolver createVirtualSourceResolver(FederationConfig config) {
+ return VirtualSourceResolver.of(config.target().stream().map(FederationConfig.Target::id).collect(Collectors.toUnmodifiableSet()));
+ }
+
private static TargetSelector resolveSelector(String selectorId,
ComponentRegistry<TargetSelector> targetSelectors) {
if (selectorId.isEmpty()) return null;
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/VirtualSourceResolver.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/VirtualSourceResolver.java
index fc07d12d429..2b2c3b2f3ca 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/VirtualSourceResolver.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/VirtualSourceResolver.java
@@ -1,8 +1,6 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.search.federation.sourceref;
-import com.yahoo.search.federation.FederationConfig;
-
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -43,9 +41,7 @@ public class VirtualSourceResolver {
}
return virtualSourceMap;
}
- public static VirtualSourceResolver of(FederationConfig config) {
- return of(config.target().stream().map(FederationConfig.Target::id).collect(Collectors.toUnmodifiableSet()));
- }
+
public Set<String> resolve(Set<String> sourcesInQuery) {
boolean hasMapping = sourcesInQuery.stream().anyMatch(virtualSources::containsKey);
if (hasMapping) {