aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude/fastsearch/Float16Field.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-12-14 11:28:18 +0100
committerJon Bratseth <bratseth@oath.com>2018-12-14 11:28:18 +0100
commitb4e3917d746fcf4be76d353be7c3b4ae9b229973 (patch)
tree9bbc8f32467adbc022ff1464e0e3514076c79a36 /container-search/src/main/java/com/yahoo/prelude/fastsearch/Float16Field.java
parent7b8bb9e7e84c43240457e24bd846291c24221747 (diff)
Support for configuring and feeding float16 and bool field types
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/fastsearch/Float16Field.java')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/Float16Field.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/Float16Field.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/Float16Field.java
new file mode 100644
index 00000000000..f00d6b19d67
--- /dev/null
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/Float16Field.java
@@ -0,0 +1,33 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.prelude.fastsearch;
+
+import com.yahoo.data.access.Inspector;
+import com.yahoo.search.result.NanNumber;
+
+/**
+ * A 16-bit float, represented as a (32-bit) Float in Java, as there is no 16-bit float support.
+ *
+ * @author bratseth
+ */
+public class Float16Field extends DocsumField {
+
+ static final double EMPTY_VALUE = Float.NaN;
+
+ public Float16Field(String name) {
+ super(name);
+ }
+
+ private Object convert(float value) {
+ if (Float.isNaN(value)) {
+ return NanNumber.NaN;
+ } else {
+ return Float.valueOf(value);
+ }
+ }
+
+ @Override
+ public Object convert(Inspector value) {
+ return convert((float)value.asDouble(EMPTY_VALUE));
+ }
+
+}