diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-05-10 23:40:43 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-05-10 23:40:43 +0200 |
commit | 837e33533ba3c109aeb48f2cfcc10d0b28a8a1b8 (patch) | |
tree | 8d675b966ea8b7461f484a400ac7d9d8adf7d0cd /container-search/src/main/java/com | |
parent | e9bc22ad954be93f431cd261a203f520b2d2318c (diff) |
Remove some dead code
Diffstat (limited to 'container-search/src/main/java/com')
24 files changed, 48 insertions, 552 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/ByteField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/ByteField.java index adc8190d325..256edc66793 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/ByteField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/ByteField.java @@ -13,9 +13,10 @@ import com.yahoo.search.result.NanNumber; import com.yahoo.data.access.Inspector; /** - * @author <a href="mailto:borud@yahoo-inc.com">Bj\u00f8rn Borud</a> + * @author Bjørn Borud */ public class ByteField extends DocsumField { + static final byte EMPTY_VALUE = Byte.MIN_VALUE; public ByteField(String name) { @@ -30,24 +31,9 @@ public class ByteField extends DocsumField { } } - public Object decode(ByteBuffer b) { - return convert(b.get()); - } - - public Object decode(ByteBuffer b, FastHit hit) { - Object field = decode(b); - hit.setField(name, field); - return field; - } - - public int getLength(ByteBuffer b) { - int offset = b.position(); - final int bytelength = Byte.SIZE >> 3; - b.position(offset + bytelength); - return bytelength; - } - + @Override public Object convert(Inspector value) { return convert((byte)value.asLong(EMPTY_VALUE)); } + } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DataField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DataField.java index 5f6eb9d3631..524e842eacd 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DataField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DataField.java @@ -19,7 +19,7 @@ import com.yahoo.data.access.Inspector; /** * @author Bjørn Borud */ -public class DataField extends DocsumField implements VariableLengthField { +public class DataField extends DocsumField { public DataField(String name) { super(name); @@ -30,40 +30,11 @@ public class DataField extends DocsumField implements VariableLengthField { } @Override - public Object decode(ByteBuffer b) { - int len = ((int) b.getShort()) & 0xffff; - - byte[] tmp = new byte[len]; - b.get(tmp); - return convert(tmp); - } - - @Override - public Object decode(ByteBuffer b, FastHit hit) { - Object field = decode(b); - hit.setField(name, field); - return field; - } - - @Override public String toString() { return "field " + getName() + " type data"; } @Override - public int getLength(ByteBuffer b) { - int offset = b.position(); - int len = ((int) b.getShort()) & 0xffff; - b.position(offset + len + (Short.SIZE >> 3)); - return len + (Short.SIZE >> 3); - } - - @Override - public int sizeOfLength() { - return Short.SIZE >> 3; - } - - @Override public Object convert(Inspector value) { return convert(value.asData(Value.empty().asData())); } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/Docsum.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/Docsum.java deleted file mode 100644 index f5cec631734..00000000000 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/Docsum.java +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.prelude.fastsearch; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; - - -/** - * An instance of a document summary, backed by binary data, which decodes and returns fields on request, - * using the (shared) definition of this docsum. - * - * @author Steinar Knutsen - */ -public final class Docsum { - - private final DocsumDefinition definition; - private final byte[] packet; - /** The offsets into the packet data of each field, given the fields index, computed lazily */ - private final int[] fieldOffsets; - /** The largest stored offset */ - private int largestStoredOffset = -1; - - public Docsum(DocsumDefinition definition, byte[] packet) { - this.definition = definition; - this.packet = packet; - fieldOffsets=new int[definition.getFieldCount()]; - } - - public DocsumDefinition getDefinition() { return definition; } - - public Object decode(int fieldIndex) { - ByteBuffer b=packetAsBuffer(); - setAndReturnOffsetToField(b, fieldIndex); - return definition.getField(fieldIndex).decode(b); - } - - public ByteBuffer packetAsBuffer() { - ByteBuffer buffer = ByteBuffer.wrap(packet); - buffer.order(ByteOrder.LITTLE_ENDIAN); - buffer.getInt(); // Skip class id - return buffer; - } - - /** Returns the offset of a given field in the buffer, and sets the position of the buffer to that field start */ - private int setAndReturnOffsetToField(ByteBuffer b, int fieldIndex) { - // find and store missing offsets up to fieldIndex - if (largestStoredOffset<0) { // initial case - fieldOffsets[0]=b.position(); - largestStoredOffset++; - } - while (largestStoredOffset < fieldIndex) { // induction - int offsetOfLargest=fieldOffsets[largestStoredOffset]; - b.position(offsetOfLargest); - fieldOffsets[largestStoredOffset+1]=offsetOfLargest+definition.getField(largestStoredOffset).getLength(b); - largestStoredOffset++; - } - - // return the stored offset - int offset=fieldOffsets[fieldIndex]; - b.position(offset); - return offset; - } - - public String toString() { - return "docsum [definition: " + definition + "]"; - } - -} diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumField.java index d5e4eb75931..a5f83021bee 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumField.java @@ -90,27 +90,6 @@ public abstract class DocsumField { return name; } - public boolean isCompressed(ByteBuffer b) { - return false; - } - - /** - * Decode the field at the current buffer position into the fast hit. - */ - public abstract Object decode(ByteBuffer b, FastHit hit); - - /** - * Decode the field at the current buffer position and simply return the - * value. - */ - public abstract Object decode(ByteBuffer b); - - /** - * Get the number of bytes this field occupies in the given buffer - * AND SET(!) the position to the first byte after this field. - */ - public abstract int getLength(ByteBuffer b); - /** * Convert a generic value into an object of the appropriate type * for this field. diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumPacketKey.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumPacketKey.java index 46cbf244abe..a3b5a6f57b6 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumPacketKey.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumPacketKey.java @@ -5,14 +5,14 @@ import com.yahoo.document.GlobalId; /** - * Key for each entry in the packetcache. + * Key for each entry in the packet cache. * - * @author <a href="mailto:mathiasm@yahoo-inc.com">Mathias M\u00f8lster Lidal</a> + * @author Mathias Mølster Lidal */ public class DocsumPacketKey { + private GlobalId globalId; private int partid; - private int docstamp; private String summaryClass; private static boolean strEquals(String a, String b) { @@ -43,6 +43,7 @@ public class DocsumPacketKey { return partid; } + @Override public boolean equals(Object o) { if (o instanceof DocsumPacketKey) { DocsumPacketKey other = (DocsumPacketKey) o; @@ -57,6 +58,7 @@ public class DocsumPacketKey { return false; } + @Override public int hashCode() { return globalId.hashCode() + 10 * partid + strHashCode(summaryClass); } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DoubleField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DoubleField.java index 474e84bdc0b..6b1445229ec 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DoubleField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DoubleField.java @@ -8,9 +8,10 @@ import com.yahoo.search.result.NanNumber; import com.yahoo.data.access.Inspector; /** - * @author <a href="mailto:mathiasm@yahoo-inc.com">Mathias M\u00f8lster Lidal</a> + * @author Mathias Mølster Lidal */ public class DoubleField extends DocsumField { + static final double EMPTY_VALUE = Double.NaN; public DoubleField(String name) { @@ -25,24 +26,9 @@ public class DoubleField extends DocsumField { } } - public Object decode(ByteBuffer b) { - return convert(b.getDouble()); - } - - public Object decode(ByteBuffer b, FastHit hit) { - Object field = decode(b); - hit.setField(name, field); - return field; - } - - public int getLength(ByteBuffer b) { - int offset = b.position(); - final int byteLength = Double.SIZE >> 3; - b.position(offset + byteLength); - return byteLength; - } - + @Override public Object convert(Inspector value) { return convert(value.asDouble(EMPTY_VALUE)); } + } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FeatureDataField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FeatureDataField.java index df681a6ed11..28c63aa2d3a 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FeatureDataField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FeatureDataField.java @@ -22,6 +22,7 @@ public class FeatureDataField extends LongstringField { return "field " + getName() + " type FeatureDataField"; } + @Override public Object convert(Inspector value) { if (! value.valid()) { if (getEmulConfig().stringBackedFeatureData()) { @@ -42,4 +43,5 @@ public class FeatureDataField extends LongstringField { return obj; } } + } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FloatField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FloatField.java index 6c73167b162..7330f0bde3c 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FloatField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FloatField.java @@ -28,24 +28,6 @@ public class FloatField extends DocsumField { } @Override - public Object decode(ByteBuffer b) { - return convert(b.getFloat()); - } - - @Override - public Object decode(ByteBuffer b, FastHit hit) { - Object field = decode(b); - hit.setField(name, field); - return field; - } - - public int getLength(ByteBuffer b) { - int offset = b.position(); - final int bytelength = Float.SIZE >> 3; - b.position(offset + bytelength); - return bytelength; - } - public Object convert(Inspector value) { return convert((float)value.asDouble(EMPTY_VALUE)); } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/Int64Field.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/Int64Field.java index 5d422f5611c..f690d9d4da4 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/Int64Field.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/Int64Field.java @@ -13,9 +13,10 @@ import com.yahoo.data.access.Inspector; /** - * @author <a href="mailto:borud@yahoo-inc.com">Bj\u00f8rn Borud</a> + * @author Bjørn Borud */ public class Int64Field extends DocsumField { + static final long EMPTY_VALUE = Long.MIN_VALUE; public Int64Field(String name) { @@ -30,28 +31,14 @@ public class Int64Field extends DocsumField { } } - public Object decode(ByteBuffer b) { - return convert(b.getLong()); - } - - public Object decode(ByteBuffer b, FastHit hit) { - Object field = decode(b); - hit.setField(name, field); - return field; - } - + @Override public String toString() { return "field " + getName() + " type int64"; } - public int getLength(ByteBuffer b) { - int offset = b.position(); - final int bytelength = Long.SIZE >> 3; - b.position(offset + bytelength); - return bytelength; - } - + @Override public Object convert(Inspector value) { return convert(value.asLong(EMPTY_VALUE)); } + } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/IntegerField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/IntegerField.java index eef6fc73294..a02d9813793 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/IntegerField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/IntegerField.java @@ -31,29 +31,11 @@ public class IntegerField extends DocsumField { } @Override - public Object decode(ByteBuffer b) { - return convert(b.getInt()); - } - - @Override - public Object decode(ByteBuffer b, FastHit hit) { - Object field = decode(b); - hit.setField(name, field); - return field; - } - - @Override public String toString() { return "field " + getName() + " type int"; } - public int getLength(ByteBuffer b) { - int offset = b.position(); - final int bytelength = Integer.SIZE >> 3; - b.position(offset + bytelength); - return bytelength; - } - + @Override public Object convert(Inspector value) { return convert((int)value.asLong(EMPTY_VALUE)); } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/JSONField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/JSONField.java index d39d541f7a0..bf9cc02b766 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/JSONField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/JSONField.java @@ -14,77 +14,17 @@ import com.yahoo.data.access.simple.Value; * * @author Steinar Knutsen */ -public class JSONField extends DocsumField implements VariableLengthField { +public class JSONField extends DocsumField { public JSONField(String name) { super(name); } @Override - public Object decode(ByteBuffer b) { - long dataLen = 0; - long len = ((long) b.getInt()) & 0xffffffffL; - boolean compressed; - JSONString field; - - // if MSB is set this is a compressed field. set the compressed - // flag accordingly and decompress the data - compressed = ((len & 0x80000000) != 0); - if (compressed) { - len &= 0x7fffffff; - dataLen = b.getInt(); - len -= 4; - } - - byte[] tmp = new byte[(int) len]; - - b.get(tmp); - - if (compressed) { - SlowInflate inf = new SlowInflate(); - - tmp = inf.unpack(tmp, (int) dataLen); - } - - field = new JSONString(Utf8.toString(tmp)); - return field; - } - - @Override - public Object decode(ByteBuffer b, FastHit hit) { - Object field = decode(b); - hit.setField(name, field); - return field; - } - - @Override public String toString() { return "field " + getName() + " type JSONString"; } - @Override - public int getLength(ByteBuffer b) { - int offset = b.position(); - // MSB = compression flag, re decode - int len = b.getInt() & 0x7fffffff; - b.position(offset + len + (Integer.SIZE >> 3)); - return len + (Integer.SIZE >> 3); - } - - @Override - public boolean isCompressed(ByteBuffer b) { - int offset = b.position(); - // MSB = compression flag, re decode - int compressed = b.getInt() & 0x80000000; - b.position(offset); - return compressed != 0; - } - - @Override - public int sizeOfLength() { - return Integer.SIZE >> 3; - } - private static class CompatibilityConverter { Value.ArrayValue target = new Value.ArrayValue(); @@ -167,6 +107,7 @@ public class JSONField extends DocsumField implements VariableLengthField { return value; } + @Override public Object convert(Inspector value) { if (value.valid()) { return new JSONString(convertTop(value)); @@ -174,4 +115,5 @@ public class JSONField extends DocsumField implements VariableLengthField { return new JSONString(""); } } + } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/LongdataField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/LongdataField.java index 9d22168485c..bf77c517d50 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/LongdataField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/LongdataField.java @@ -15,7 +15,7 @@ import com.yahoo.data.access.Inspector; /** * @author Bjørn Borud */ -public class LongdataField extends DocsumField implements VariableLengthField { +public class LongdataField extends DocsumField { public LongdataField(String name) { super(name); @@ -26,63 +26,6 @@ public class LongdataField extends DocsumField implements VariableLengthField { } @Override - public Object decode(ByteBuffer b) { - long dataLen = 0; - long len = ((long) b.getInt()) & 0xffffffffL; - boolean compressed; - - // if MSB is set this is a compressed field. set the compressed - // flag accordingly and decompress the data - compressed = ((len & 0x80000000) != 0); - if (compressed) { - len &= 0x7fffffff; - dataLen = b.getInt(); - len -= 4; - } - - byte[] tmp = new byte[(int) len]; - - b.get(tmp); - - if (compressed) { - SlowInflate inf = new SlowInflate(); - - tmp = inf.unpack(tmp, (int) dataLen); - } - return convert(tmp); - } - - @Override - public Object decode(ByteBuffer b, FastHit hit) { - Object field = decode(b); - hit.setField(name, field); - return field; - } - - @Override - public int getLength(ByteBuffer b) { - int offset = b.position(); - // MSB = compression flag, re decode - int len = b.getInt() & 0x7fffffff; - b.position(offset + len + (Integer.SIZE >> 3)); - return len + (Integer.SIZE >> 3); - } - - @Override - public boolean isCompressed(ByteBuffer b) { - int offset = b.position(); - // MSB = compression flag, re decode - int compressed = b.getInt() & 0x80000000; - b.position(offset); - return compressed != 0; - } - - @Override - public int sizeOfLength() { - return Integer.SIZE >> 3; - } - - @Override public Object convert(Inspector value) { return convert(value.asData(Value.empty().asData())); } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/LongstringField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/LongstringField.java index 9914bedd0db..2f9c6d5b325 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/LongstringField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/LongstringField.java @@ -14,73 +14,15 @@ import com.yahoo.data.access.Inspector; /** * @author Bjørn Borud */ -public class LongstringField extends DocsumField implements VariableLengthField { +public class LongstringField extends DocsumField { public LongstringField(String name) { super(name); } @Override - public Object decode(ByteBuffer b) { - long dataLen = 0; - long len = ((long) b.getInt()) & 0xffffffffL; - boolean compressed; - String field; - - // if MSB is set this is a compressed field. set the compressed - // flag accordingly and decompress the data - compressed = ((len & 0x80000000) != 0); - if (compressed) { - len &= 0x7fffffff; - dataLen = b.getInt(); - len -= 4; - } - - byte[] tmp = new byte[(int) len]; - - b.get(tmp); - - if (compressed) { - SlowInflate inf = new SlowInflate(); - - tmp = inf.unpack(tmp, (int) dataLen); - } - field = Utf8.toString(tmp); - return field; - } - - @Override - public Object decode(ByteBuffer b, FastHit hit) { - Object field = decode(b); - hit.setField(name, field); - return field; - } - - @Override - public int getLength(ByteBuffer b) { - int offset = b.position(); - // MSB = compression flag, re decode - int len = b.getInt() & 0x7fffffff; - b.position(offset + len + (Integer.SIZE >> 3)); - return len + (Integer.SIZE >> 3); - } - - @Override - public boolean isCompressed(ByteBuffer b) { - int offset = b.position(); - // MSB = compression flag, re decode - int compressed = b.getInt() & 0x80000000; - b.position(offset); - return compressed != 0; - } - - @Override - public int sizeOfLength() { - return Integer.SIZE >> 3; - } - - @Override public Object convert(Inspector value) { return value.asString(""); } + } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/PacketCache.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/PacketCache.java index 8e93f57ef34..ce3ccb1d1b8 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/PacketCache.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/PacketCache.java @@ -13,8 +13,8 @@ import com.yahoo.log.LogLevel; * An LRU cache using number of hits cached inside the results as * size limiting factor. Directly modelled after com.yahoo.collections.Cache. * - * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a> - * @author bratseth + * @author Steinar Knutsen + * @author bratseth */ // TODO: Remove packet cache as it timed out a long time ago. // 1 - It does not work with grouping, 2 the packet protocol is eroding away. diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/PacketWrapper.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/PacketWrapper.java index a6abe05334a..2b1b7dd24cc 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/PacketWrapper.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/PacketWrapper.java @@ -22,12 +22,13 @@ import com.yahoo.document.DocumentId; * A wrapper for cache entries to make it possible to check whether the * hits are truly correct. * - * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a> - * @author <a href="mailto:mathiasm@yahoo-inc.com">Mathias Lidal</a> + * @author Steinar Knutsen + * @author Mathias Lidal */ // TODO: Remove packet cache as it timed out a long time ago. // 1 - It does not work with grouping, 2 the packet protocol is eroding away. public class PacketWrapper implements Cloneable { + private static Logger log = Logger.getLogger(PacketWrapper.class.getName()); final int keySize; @@ -288,6 +289,7 @@ public class PacketWrapper implements Cloneable { * Straightforward shallow copy. */ @SuppressWarnings("unchecked") + @Override public Object clone() { try { PacketWrapper other = (PacketWrapper) super.clone(); @@ -301,4 +303,5 @@ public class PacketWrapper implements Cloneable { e); } } + } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/ShortField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/ShortField.java index be4dd3e20a5..5e3d0babe98 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/ShortField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/ShortField.java @@ -15,6 +15,7 @@ import com.yahoo.data.access.Inspector; * @author Bjørn Borud */ public class ShortField extends DocsumField { + static final short EMPTY_VALUE = Short.MIN_VALUE; public ShortField(String name) { @@ -29,24 +30,9 @@ public class ShortField extends DocsumField { } } - public Object decode(ByteBuffer b) { - return convert(b.getShort()); - } - - public Object decode(ByteBuffer b, FastHit hit) { - Object field = decode(b); - hit.setField(name, field); - return field; - } - - public int getLength(ByteBuffer b) { - int offset = b.position(); - final int bytelength = Short.SIZE >> 3; - b.position(offset + bytelength); - return bytelength; - } - + @Override public Object convert(Inspector value) { return convert((short)value.asLong(EMPTY_VALUE)); } + } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/StringField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/StringField.java index 92ea7efee25..0fa4b7ee342 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/StringField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/StringField.java @@ -15,48 +15,18 @@ import com.yahoo.data.access.Inspector; /** * @author Bjørn Borud */ -public class StringField extends DocsumField implements VariableLengthField { +public class StringField extends DocsumField { public StringField(String name) { super(name); } @Override - public Object decode(ByteBuffer b) { - int length = ((int) b.getShort()) & 0xffff; - Object field; - - field = Utf8.toString(b.array(), b.arrayOffset() + b.position(), length); - b.position(b.position() + length); - return field; - } - - @Override - public Object decode(ByteBuffer b, FastHit hit) { - Object field = decode(b); - hit.setField(name, field); - return field; - } - - @Override public String toString() { return "field " + getName() + " type string"; } @Override - public int getLength(ByteBuffer b) { - int offset = b.position(); - int len = ((int) b.getShort()) & 0xffff; - b.position(offset + len + (Short.SIZE >> 3)); - return len + (Short.SIZE >> 3); - } - - @Override - public int sizeOfLength() { - return Short.SIZE >> 3; - } - - @Override public Object convert(Inspector value) { return value.asString(""); } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/StructDataField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/StructDataField.java index 7f96cbf77e1..9521854477a 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/StructDataField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/StructDataField.java @@ -21,6 +21,7 @@ public class StructDataField extends JSONField { return "field " + getName() + " type StructDataField"; } + @Override public Object convert(Inspector value) { if (getEmulConfig().stringBackedStructuredData() || value.type() == Type.STRING) { return super.convert(value); diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/SummaryParameters.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/SummaryParameters.java index 98d7da2cad5..603d576ddb5 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/SummaryParameters.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/SummaryParameters.java @@ -5,7 +5,7 @@ package com.yahoo.prelude.fastsearch; /** * Wrapper for document summary parameters and configuration. * - * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a> + * @author Steinar Knutsen */ public class SummaryParameters { diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/TensorField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/TensorField.java index d8b38667224..1b91a66aef6 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/TensorField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/TensorField.java @@ -16,48 +16,18 @@ import java.util.Optional; * * @author bratseth */ -public class TensorField extends DocsumField implements VariableLengthField { +public class TensorField extends DocsumField { public TensorField(String name) { super(name); } @Override - public Tensor decode(ByteBuffer buffer) { - int length = buffer.getInt(); - if (length == 0) return null; - ByteBuffer contentBuffer = ByteBuffer.wrap(buffer.array(), buffer.arrayOffset() + buffer.position(), length); - Tensor tensor = TypedBinaryFormat.decode(Optional.empty(), new GrowableByteBuffer(contentBuffer)); - buffer.position(buffer.position() + length); - return tensor; - } - - @Override - public Tensor decode(ByteBuffer b, FastHit hit) { - Tensor tensor = decode(b); - hit.setField(name, tensor); - return tensor; - } - - @Override public String toString() { return "field " + getName() + " type tensor"; } @Override - public int getLength(ByteBuffer b) { - int offset = b.position(); - int length = b.getInt(); - b.position(offset + length); - return length; - } - - @Override - public int sizeOfLength() { - return 4; - } - - @Override public Object convert(Inspector value) { byte[] content = value.asData(Value.empty().asData()); if (content.length == 0) return null; diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VariableLengthField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VariableLengthField.java deleted file mode 100644 index 53dad510761..00000000000 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VariableLengthField.java +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.prelude.fastsearch; - -/** - * Interface to easier find the start of the actual data for variable length - * fields. - * - * @author Steinar Knutsen - */ -public interface VariableLengthField { - - /** Returns the size of the length preceeding the data of this field, in bytes */ - int sizeOfLength(); - -} diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/XMLField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/XMLField.java index 366c4e1bb51..5c85c3641cf 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/XMLField.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/XMLField.java @@ -15,9 +15,10 @@ import com.yahoo.data.access.Inspector; /** - * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a> + * @author Steinar Knutsen */ -public class XMLField extends DocsumField implements VariableLengthField { +public class XMLField extends DocsumField { + public XMLField(String name) { super(name); } @@ -27,67 +28,11 @@ public class XMLField extends DocsumField implements VariableLengthField { } @Override - public Object decode(ByteBuffer b) { - long dataLen = 0; - long len = ((long) b.getInt()) & 0xffffffffL; - boolean compressed; - - // if MSB is set this is a compressed field. set the compressed - // flag accordingly and decompress the data - compressed = ((len & 0x80000000) != 0); - if (compressed) { - len &= 0x7fffffff; - dataLen = b.getInt(); - len -= 4; - } - - byte[] tmp = new byte[(int) len]; - - b.get(tmp); - - if (compressed) { - SlowInflate inf = new SlowInflate(); - - tmp = inf.unpack(tmp, (int) dataLen); - } - return convert(Utf8.toString(tmp)); - } - - @Override - public Object decode(ByteBuffer b, FastHit hit) { - Object field = decode(b); - hit.setField(name, field); - return field; - } - - @Override public String toString() { return "field " + getName() + " type XMLString"; } @Override - public int getLength(ByteBuffer b) { - int offset = b.position(); - // MSB = compression flag, re decode - int len = b.getInt() & 0x7fffffff; - b.position(offset + len + (Integer.SIZE >> 3)); - return len + (Integer.SIZE >> 3); - } - - @Override - public boolean isCompressed(ByteBuffer b) { - int offset = b.position(); - // MSB = compression flag, re decode - int compressed = b.getInt() & 0x80000000; - b.position(offset); - return compressed != 0; - } - - @Override - public int sizeOfLength() { - return Integer.SIZE >> 3; - } - public Object convert(Inspector value) { return convert(value.asString("")); } diff --git a/container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java b/container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java index f0c7b1a183f..bae1185d6a9 100644 --- a/container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java +++ b/container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java @@ -221,8 +221,8 @@ public final class DefaultRenderer extends AsynchronousSectionedRenderer<Result> } private void renderSyntheticRelevanceField(XMLWriter writer, Hit hit) { - final String relevancyFieldName = "relevancy"; - final Relevance relevance = hit.getRelevance(); + String relevancyFieldName = "relevancy"; + Relevance relevance = hit.getRelevance(); // skip depending on hit type if (relevance != null) { diff --git a/container-search/src/main/java/com/yahoo/search/searchchain/AsyncExecution.java b/container-search/src/main/java/com/yahoo/search/searchchain/AsyncExecution.java index daa1499389a..d74f29a3b77 100644 --- a/container-search/src/main/java/com/yahoo/search/searchchain/AsyncExecution.java +++ b/container-search/src/main/java/com/yahoo/search/searchchain/AsyncExecution.java @@ -181,7 +181,7 @@ public class AsyncExecution { for (FutureResult task : workingTasks) task.get(); }).get(timeoutMs, TimeUnit.MILLISECONDS); - }catch (TimeoutException | InterruptedException | ExecutionException e) { + } catch (TimeoutException | InterruptedException | ExecutionException e) { // Handle timeouts below } |