diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-04-06 11:10:19 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-04-06 11:10:19 +0200 |
commit | 52286f5e1486eb20c2f49d37ceffb46b6121b045 (patch) | |
tree | ec21ff624ed74c3addfa92053db96a90ea6b68bf /container-search/src/main/java/com/yahoo/prelude | |
parent | a2d552abed7412a4aa7fb89146946d03107389ec (diff) |
Add inputs to RankProfile
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude')
-rw-r--r-- | container-search/src/main/java/com/yahoo/prelude/fastsearch/DocumentDatabase.java | 7 | ||||
-rw-r--r-- | container-search/src/main/java/com/yahoo/prelude/fastsearch/RankProfile.java | 19 |
2 files changed, 22 insertions, 4 deletions
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 26087318ce1..c45c2b1855b 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 @@ -2,6 +2,7 @@ package com.yahoo.prelude.fastsearch; import com.google.common.collect.ImmutableMap; +import com.yahoo.tensor.TensorType; import java.util.ArrayList; import java.util.Collection; @@ -56,8 +57,12 @@ 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())); + rankProfiles.add(new RankProfile(c.name(), c.hasSummaryFeatures(), c.hasRankFeatures(), inputs(c))); 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 index 859cffdb6ee..ecc1c6bbbd5 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/RankProfile.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/RankProfile.java @@ -1,6 +1,11 @@ // 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.Collections; +import java.util.Map; + /** * Information about a rank profile * @@ -11,19 +16,27 @@ 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) { + public RankProfile(String name, + boolean hasSummaryFeatures, + boolean hasRankFeatures, + Map<String, TensorType> inputs) { this.name = name; this.hasSummaryFeatures = hasSummaryFeatures; this.hasRankFeatures = hasRankFeatures; + this.inputs = Collections.unmodifiableMap(inputs); } public String getName() { return name; } - /** Returns true if this rank profile has summary features */ + /** Returns true if this rank profile has summary features. */ public boolean hasSummaryFeatures() { return hasSummaryFeatures; } - /** Returns true if this rank profile has rank features */ + /** 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; } + } |