summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-04-21 15:56:41 +0200
committerJon Bratseth <bratseth@gmail.com>2022-04-21 15:56:41 +0200
commit4f2994d9301034e943620e106540fa80a6c3f01e (patch)
tree6b0a76afd976bbd314f1ba5c3764af12f88ef724 /container-search/src/main/java/com/yahoo/prelude
parent50c7dfee0a9f32debb34d06191808cbd6ae67e4c (diff)
Resolve rank profile inputs
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/IndexFacts.java4
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/IndexModel.java7
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/DocumentDatabase.java19
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/RankProfile.java41
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java4
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 {