summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-03-30 09:43:00 +0200
committerGitHub <noreply@github.com>2022-03-30 09:43:00 +0200
commitbe725ccae3572b03f1f599543abfe7de9a383833 (patch)
tree0d5ff72ab61b7e7e922954f92dbc5a053b4b5af7 /container-search/src/main/java
parent77c749f65ec23660b42c00855b0e7db400d9ce83 (diff)
parent63dbce14a71acb0328637cf0fb428218e47d254f (diff)
Merge pull request #21882 from vespa-engine/bratseth/undeprecate-string-features
Undeprecate string features and be explicit
Diffstat (limited to 'container-search/src/main/java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/rpc/MapConverter.java5
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java1
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/ranking/RankFeatures.java22
3 files changed, 21 insertions, 7 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/MapConverter.java b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/MapConverter.java
index 638b89f657f..a71ec5d8345 100644
--- a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/MapConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/MapConverter.java
@@ -45,8 +45,9 @@ public class MapConverter {
}
}
- public static void convertMultiMap(Map<String, List<Object>> map, Consumer<StringProperty.Builder> stringInserter,
- Consumer<TensorProperty.Builder> tensorInserter) {
+ public static void convertMultiMap(Map<String, List<Object>> map,
+ Consumer<StringProperty.Builder> stringInserter,
+ Consumer<TensorProperty.Builder> tensorInserter) {
for (var entry : map.entrySet()) {
if (entry.getValue() != null) {
var key = entry.getKey();
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
index 0e1df2b3d9a..c60cf70bd59 100644
--- a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
@@ -185,7 +185,6 @@ public class ProtobufSerialization {
}
mergeRankProperties(ranking, builder::addRankProperties, builder::addTensorRankProperties);
}
-
static byte[] serializeResult(Result searchResult) {
return convertFromResult(searchResult).toByteArray();
}
diff --git a/container-search/src/main/java/com/yahoo/search/query/ranking/RankFeatures.java b/container-search/src/main/java/com/yahoo/search/query/ranking/RankFeatures.java
index 807d70739cc..db23b42afd6 100644
--- a/container-search/src/main/java/com/yahoo/search/query/ranking/RankFeatures.java
+++ b/container-search/src/main/java/com/yahoo/search/query/ranking/RankFeatures.java
@@ -58,11 +58,10 @@ public class RankFeatures implements Cloneable {
}
/**
- * Sets a rank feature to a value represented as a string.
- *
- * @deprecated set either a double or a tensor
+ * Sets a rank feature to a string. This will be available as the hash value
+ * of the string in ranking, so it can be used in equality comparisons
+ * with other string, but not for any other purpose.
*/
- @Deprecated // TODO: Remove on Vespa 8
public void put(String name, String value) {
features.put(name, value);
}
@@ -110,6 +109,21 @@ public class RankFeatures implements Cloneable {
}
/**
+ * Returns a rank feature as a string, or empty if there is no value with this name.
+ *
+ * @throws IllegalArgumentException if the value is a tensor or double, not a string
+ */
+ public Optional<String> getString(String name) {
+ Object feature = features.get(name);
+ if (feature == null) return Optional.empty();
+ if (feature instanceof String) return Optional.of((String)feature);
+ // TODO: Use toShortString for tensors below
+ throw new IllegalArgumentException("Expected a string value of '" + name + "' but has " +
+ (feature instanceof Tensor ? ((Tensor)feature).toString() : feature));
+ }
+
+
+ /**
* Returns the map holding the features of this.
* This map may be modified to change the rank features of the query.
*/