diff options
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinitionSet.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinitionSet.java | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinitionSet.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinitionSet.java index 1e0cfa3be9e..51da9965fea 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinitionSet.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinitionSet.java @@ -1,7 +1,8 @@ // 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.google.common.collect.ImmutableMap; +import com.yahoo.search.schema.DocumentSummary; +import com.yahoo.search.schema.Schema; import com.yahoo.slime.BinaryFormat; import com.yahoo.data.access.Inspector; import com.yahoo.slime.Slime; @@ -10,10 +11,8 @@ import com.yahoo.prelude.ConfigurationException; import java.nio.ByteBuffer; import java.nio.ByteOrder; -import java.util.ArrayList; import java.util.Collection; import java.util.Map; -import java.util.logging.Logger; import java.util.stream.Collectors; import static com.yahoo.data.access.Type.OBJECT; @@ -27,16 +26,18 @@ import static com.yahoo.data.access.Type.OBJECT; public final class DocsumDefinitionSet { public static final int SLIME_MAGIC_ID = 0x55555555; - private final static Logger log = Logger.getLogger(DocsumDefinitionSet.class.getName()); private final Map<String, DocsumDefinition> definitionsByName; - public DocsumDefinitionSet(DocumentdbInfoConfig.Documentdb config) { - this(toDocsums(config)); + public DocsumDefinitionSet(Schema schema) { + this(schema.documentSummaries().values()); } - public DocsumDefinitionSet(Collection<DocsumDefinition> docsumDefinitions) { - this.definitionsByName = ImmutableMap.copyOf(docsumDefinitions.stream().collect(Collectors.toMap(DocsumDefinition::getName, p -> p))); + public DocsumDefinitionSet(Collection<DocumentSummary> docsumDefinitions) { + this.definitionsByName = docsumDefinitions.stream() + .map(summary -> new DocsumDefinition(summary)) + .collect(Collectors.toUnmodifiableMap(summary -> summary.name(), + summary -> summary)); } /** @@ -45,20 +46,22 @@ public final class DocsumDefinitionSet { * @throws ConfigurationException if the requested summary class is not found and there is none called "default" */ public DocsumDefinition getDocsum(String summaryClass) { + if (summaryClass == null) + summaryClass = "default"; DocsumDefinition ds = definitionsByName.get(summaryClass); - if (ds == null) { + if (ds == null) ds = definitionsByName.get("default"); - } - if (ds == null) { + if (ds == null) throw new ConfigurationException("Fetched hit with summary class " + summaryClass + ", but this summary class is not in current summary config (" + this + ")" + " (that is, you asked for something unknown, and no default was found)"); - } return ds; } /** Do we have a summary definition with the given name */ public boolean hasDocsum(String summaryClass) { + if (summaryClass == null) + summaryClass = "default"; return definitionsByName.containsKey(summaryClass); } @@ -95,7 +98,7 @@ public final class DocsumDefinitionSet { if (sb.length() != 0) { sb.append(","); } - sb.append("[").append(e.getKey()).append(",").append(e.getValue().getName()).append("]"); + sb.append("[").append(e.getKey()).append(",").append(e.getValue().name()).append("]"); } return sb.toString(); } @@ -104,13 +107,4 @@ public final class DocsumDefinitionSet { return definitionsByName.size(); } - private static Collection<DocsumDefinition> toDocsums(DocumentdbInfoConfig.Documentdb config) { - Collection<DocsumDefinition> docsums = new ArrayList<>(); - for (int i = 0; i < config.summaryclass().size(); ++i) - docsums.add(new DocsumDefinition(config.summaryclass(i))); - if (docsums.isEmpty()) - log.warning("No summary classes found in DocumentdbInfoConfig.Documentdb"); - return docsums; - } - } |