diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-04-21 15:56:41 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-04-21 15:56:41 +0200 |
commit | 4f2994d9301034e943620e106540fa80a6c3f01e (patch) | |
tree | 6b0a76afd976bbd314f1ba5c3764af12f88ef724 /container-search/src/main/java/com/yahoo/prelude | |
parent | 50c7dfee0a9f32debb34d06191808cbd6ae67e4c (diff) |
Resolve rank profile inputs
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude')
5 files changed, 18 insertions, 57 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/IndexFacts.java b/container-search/src/main/java/com/yahoo/prelude/IndexFacts.java index a1613dccdd5..c9a855c2f34 100644 --- a/container-search/src/main/java/com/yahoo/prelude/IndexFacts.java +++ b/container-search/src/main/java/com/yahoo/prelude/IndexFacts.java @@ -323,11 +323,11 @@ public class IndexFacts { private Session(Collection<String> sources, Collection<String> restrict) { // Assumption: Search definition name equals document name. - documentTypes = ImmutableList.copyOf(resolveDocumentTypes(sources, restrict, searchDefinitions.keySet())); + documentTypes = List.copyOf(resolveDocumentTypes(sources, restrict, searchDefinitions.keySet())); } private Session(Collection<String> sources, Collection<String> restrict, Set<String> candidateDocumentTypes) { - documentTypes = ImmutableList.copyOf(resolveDocumentTypes(sources, restrict, candidateDocumentTypes)); + documentTypes = List.copyOf(resolveDocumentTypes(sources, restrict, candidateDocumentTypes)); } /** diff --git a/container-search/src/main/java/com/yahoo/prelude/IndexModel.java b/container-search/src/main/java/com/yahoo/prelude/IndexModel.java index e7018f81de1..57a8d518ed2 100644 --- a/container-search/src/main/java/com/yahoo/prelude/IndexModel.java +++ b/container-search/src/main/java/com/yahoo/prelude/IndexModel.java @@ -24,9 +24,9 @@ public final class IndexModel { private static final Logger log = Logger.getLogger(IndexModel.class.getName()); - private Map<String, List<String>> masterClusters; - private Map<String, SearchDefinition> searchDefinitions; - private SearchDefinition unionSearchDefinition; + private final Map<String, List<String>> masterClusters; + private final Map<String, SearchDefinition> searchDefinitions; + private final SearchDefinition unionSearchDefinition; /** Create an index model for a single search definition */ public IndexModel(SearchDefinition searchDefinition) { @@ -83,7 +83,6 @@ public final class IndexModel { return clusters; } - @SuppressWarnings("deprecation") private static Map<String, SearchDefinition> toSearchDefinitions(IndexInfoConfig c) { Map<String, SearchDefinition> searchDefinitions = new HashMap<>(); diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocumentDatabase.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocumentDatabase.java index d5a3e8c2786..f35559ad2f4 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocumentDatabase.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocumentDatabase.java @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.prelude.fastsearch; +import com.yahoo.search.config.RankProfile; import com.yahoo.tensor.TensorType; import java.util.ArrayList; @@ -10,7 +11,7 @@ import java.util.Map; import java.util.stream.Collectors; /** - * Representation of a back-end document database. + * Representation of a document database realizing a schema in a content cluster. * * @author geirst */ @@ -33,7 +34,7 @@ public class DocumentDatabase { public DocumentDatabase(String name, DocsumDefinitionSet docsumDefinitionSet, Collection<RankProfile> rankProfiles) { this.name = name; this.docsumDefSet = docsumDefinitionSet; - this.rankProfiles = Map.copyOf(rankProfiles.stream().collect(Collectors.toMap(RankProfile::getName, p -> p))); + this.rankProfiles = Map.copyOf(rankProfiles.stream().collect(Collectors.toMap(RankProfile::name, p -> p))); } public String getName() { @@ -49,13 +50,15 @@ public class DocumentDatabase { private static Collection<RankProfile> toRankProfiles(Collection<DocumentdbInfoConfig.Documentdb.Rankprofile> rankProfileConfigList) { List<RankProfile> rankProfiles = new ArrayList<>(); - for (DocumentdbInfoConfig.Documentdb.Rankprofile c : rankProfileConfigList) - rankProfiles.add(new RankProfile(c.name(), c.hasSummaryFeatures(), c.hasRankFeatures(), inputs(c))); + for (var profileConfig : rankProfileConfigList) { + var builder = new RankProfile.Builder(profileConfig.name()); + builder.setHasSummaryFeatures(profileConfig.hasSummaryFeatures()); + builder.setHasRankFeatures(profileConfig.hasRankFeatures()); + for (var inputConfig : profileConfig.input()) + builder.addInput(inputConfig.name(), TensorType.fromSpec(inputConfig.type())); + rankProfiles.add(builder.build()); + } return rankProfiles; } - private static Map<String, TensorType> inputs(DocumentdbInfoConfig.Documentdb.Rankprofile c) { - return c.input().stream().collect(Collectors.toMap(i -> i.name(), i -> TensorType.fromSpec(i.type()))); - } - } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/RankProfile.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/RankProfile.java deleted file mode 100644 index a4248245f2a..00000000000 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/RankProfile.java +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.prelude.fastsearch; - -import com.yahoo.tensor.TensorType; - -import java.util.Map; - -/** - * Information about a rank profile - * - * @author bratseth - */ -class RankProfile { - - private final String name; - private final boolean hasSummaryFeatures; - private final boolean hasRankFeatures; - private final Map<String, TensorType> inputs; - - public RankProfile(String name, - boolean hasSummaryFeatures, - boolean hasRankFeatures, - Map<String, TensorType> inputs) { - this.name = name; - this.hasSummaryFeatures = hasSummaryFeatures; - this.hasRankFeatures = hasRankFeatures; - this.inputs = Map.copyOf(inputs); - } - - public String getName() { return name; } - - /** Returns true if this rank profile has summary features. */ - public boolean hasSummaryFeatures() { return hasSummaryFeatures; } - - /** Returns true if this rank profile has rank features. */ - public boolean hasRankFeatures() { return hasRankFeatures; } - - /** Returns the inputs explicitly declared in this rank profile. */ - public Map<String, TensorType> inputs() { return inputs; } - -} diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java index d26791411c5..a6da823d990 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java @@ -14,8 +14,8 @@ import com.yahoo.protect.Validator; import com.yahoo.search.Query; import com.yahoo.search.Result; import com.yahoo.search.cluster.PingableSearcher; +import com.yahoo.search.config.RankProfile; import com.yahoo.search.grouping.vespa.GroupingExecutor; -import com.yahoo.search.result.ErrorHit; import com.yahoo.search.result.ErrorMessage; import com.yahoo.search.result.Hit; import com.yahoo.search.searchchain.Execution; @@ -33,7 +33,7 @@ import java.util.logging.Logger; /** * Superclass for backend searchers. * - * @author baldersheim + * @author baldersheim */ public abstract class VespaBackEndSearcher extends PingableSearcher { |