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 | 51 |
1 files changed, 9 insertions, 42 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 04667f9b53f..b02701f5c8b 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 @@ -4,16 +4,13 @@ package com.yahoo.prelude.fastsearch; import com.yahoo.slime.BinaryFormat; import com.yahoo.slime.Slime; import com.yahoo.data.access.slime.SlimeAdapter; -import com.yahoo.vespa.config.search.SummaryConfig; import com.yahoo.prelude.ConfigurationException; import com.yahoo.container.search.LegacyEmulationConfig; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; -import java.util.Set; import java.util.logging.Logger; /** @@ -27,7 +24,6 @@ public final class DocsumDefinitionSet { public static final int SLIME_MAGIC_ID = 0x55555555; private final static Logger log = Logger.getLogger(DocsumDefinitionSet.class.getName()); - private final HashMap<Long, DocsumDefinition> definitions = new HashMap<>(); private final HashMap<String, DocsumDefinition> definitionsByName = new HashMap<>(); private final LegacyEmulationConfig emulationConfig; @@ -41,14 +37,6 @@ public final class DocsumDefinitionSet { configure(config); } - /** Returns a docsum definition by id - * @param id document summary class id - * @return a DocsumDefinition for the id, if found. - */ - public final DocsumDefinition getDocsumDefinition(long id) { - return definitions.get(new Long(id)); - } - /** * Returns a docsum definition by name, or null if not found * @@ -74,26 +62,11 @@ public final class DocsumDefinitionSet { buffer.order(ByteOrder.LITTLE_ENDIAN); long docsumClassId = buffer.getInt(); if (docsumClassId != SLIME_MAGIC_ID) { - log.warning("Only expecting SchemaLess docsums"); - // TODO: Not used, remove - bratseth 2017-01-016 - DocsumDefinition docsumDefinition = lookupDocsum(docsumClassId); - Docsum docsum = new Docsum(docsumDefinition, data); - hit.addSummary(docsum); - } else { - DocsumDefinition docsumDefinition = lookupDocsum(summaryClass); - Slime value = BinaryFormat.decode(buffer.array(), buffer.arrayOffset()+buffer.position(), buffer.remaining()); - hit.addSummary(docsumDefinition, new SlimeAdapter(value.get())); - } - } - - private DocsumDefinition lookupDocsum(long docsumClassId) { - DocsumDefinition docsumDefinition = getDocsumDefinition(docsumClassId); - if (docsumDefinition == null) { - throw new ConfigurationException("Received hit with summary id " + docsumClassId + - ", but this summary class is not in current summary config (" + toString() + ")" + - " (that is, the system is in an inconsistent state)"); + throw new IllegalArgumentException("Only expecting SchemaLess docsums - summary class:" + summaryClass + " hit:" + hit); } - return docsumDefinition; + DocsumDefinition docsumDefinition = lookupDocsum(summaryClass); + Slime value = BinaryFormat.decode(buffer.array(), buffer.arrayOffset()+buffer.position(), buffer.remaining()); + hit.addSummary(docsumDefinition, new SlimeAdapter(value.get())); } private DocsumDefinition lookupDocsum(String summaryClass) { @@ -111,32 +84,26 @@ public final class DocsumDefinitionSet { public String toString() { StringBuilder sb = new StringBuilder(); - Set<Map.Entry<Long, DocsumDefinition>> entrySet = definitions.entrySet(); - boolean first = true; - for (Iterator<Map.Entry<Long, DocsumDefinition>> itr = entrySet.iterator(); itr.hasNext(); ) { - if (!first) { + for (Map.Entry<String, DocsumDefinition> e : definitionsByName.entrySet() ) { + if (sb.length() != 0) { sb.append(","); - } else { - first = false; } - Map.Entry<Long, DocsumDefinition> entry = itr.next(); - sb.append("[").append(entry.getKey()).append(",").append(entry.getValue().getName()).append("]"); + sb.append("[").append(e.getKey()).append(",").append(e.getValue().getName()).append("]"); } return sb.toString(); } public int size() { - return definitions.size(); + return definitionsByName.size(); } private void configure(DocumentdbInfoConfig.Documentdb config) { for (int i = 0; i < config.summaryclass().size(); ++i) { DocumentdbInfoConfig.Documentdb.Summaryclass sc = config.summaryclass(i); DocsumDefinition docSumDef = new DocsumDefinition(sc, emulationConfig); - definitions.put((long) sc.id(), docSumDef); definitionsByName.put(sc.name(), docSumDef); } - if (definitions.size() == 0) { + if (definitionsByName.size() == 0) { log.warning("No summary classes found in DocumentdbInfoConfig.Documentdb"); } } |