aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/search/grouping
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2020-01-09 13:49:42 +0100
committerJon Bratseth <bratseth@verizonmedia.com>2020-01-09 13:49:42 +0100
commitd35770c1126af16301feb3ed3ef23410a417453c (patch)
tree701418d275bf5caf9ffa0ab5f23226f9c85d2aa9 /container-search/src/test/java/com/yahoo/search/grouping
parente19542f74d4692729ef744b74f5ef0d0715c111f (diff)
Treat rank features as tensors (or doubles)
The purpose of this is to prepare to disallow rank feature strings (which can't be parsed to doubles or tensors) on Vespa 8. Currently, such strings will be converted to numbers by hashing them during evaluation, but this is not useful (as the hash can be computed before setting if desired), and leads to confusion when a feature is intended set from a tensor string but ends up as a hash due to missing type information in the configuration. Changes: - Parse numeric rank features into doubles as soon as possible - Deprecate the methods accessing rank features as strings - Allow double features to be accessible as tensors
Diffstat (limited to 'container-search/src/test/java/com/yahoo/search/grouping')
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java21
1 files changed, 11 insertions, 10 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java
index e2f629604d7..84a6fc418a1 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingExecutorTestCase.java
@@ -489,6 +489,7 @@ public class GroupingExecutorTestCase {
*/
@Test
public void testRankProperties() {
+ final double delta = 0.000000001;
Execution exc = newExecution(new GroupingExecutor());
{
Query query = new Query("?query=foo");
@@ -496,21 +497,21 @@ public class GroupingExecutorTestCase {
}
{
Query query = new Query("?query=foo&rankfeature.fieldMatch(foo)=2");
- assertEquals("2", query.getRanking().getFeatures().get("fieldMatch(foo)"));
+ assertEquals(2, query.getRanking().getFeatures().getDouble("fieldMatch(foo)").getAsDouble(), delta);
exc.search(query);
- assertEquals("2", query.getRanking().getFeatures().get("fieldMatch(foo)"));
+ assertEquals(2.0, query.getRanking().getFeatures().getDouble("fieldMatch(foo)").getAsDouble(), delta);
}
{
Query query = new Query("?query=foo&rankfeature.query(now)=4");
- assertEquals("4", query.getRanking().getFeatures().get("query(now)"));
+ assertEquals(4, query.getRanking().getFeatures().getDouble("query(now)").getAsDouble(), delta);
exc.search(query);
- assertEquals("4", query.getRanking().getProperties().get("now").get(0));
+ assertEquals("4.0", query.getRanking().getProperties().get("now").get(0));
}
{
Query query = new Query("?query=foo&rankfeature.$bar=8");
- assertEquals("8", query.getRanking().getFeatures().get("$bar"));
+ assertEquals(8, query.getRanking().getFeatures().getDouble("$bar").getAsDouble(), delta);
exc.search(query);
- assertEquals("8", query.getRanking().getProperties().get("bar").get(0));
+ assertEquals("8.0", query.getRanking().getProperties().get("bar").get(0));
}
{
Query query = new Query("?query=foo&rankproperty.bar=8");
@@ -520,12 +521,12 @@ public class GroupingExecutorTestCase {
}
{
Query query = new Query("?query=foo&rankfeature.fieldMatch(foo)=2&rankfeature.query(now)=4&rankproperty.bar=8");
- assertEquals("2", query.getRanking().getFeatures().get("fieldMatch(foo)"));
- assertEquals("4", query.getRanking().getFeatures().get("query(now)"));
+ assertEquals(2, query.getRanking().getFeatures().getDouble("fieldMatch(foo)").getAsDouble(), delta);
+ assertEquals(4, query.getRanking().getFeatures().getDouble("query(now)").getAsDouble(), delta);
assertEquals("8", query.getRanking().getProperties().get("bar").get(0));
exc.search(query);
- assertEquals("2", query.getRanking().getFeatures().get("fieldMatch(foo)"));
- assertEquals("4", query.getRanking().getProperties().get("now").get(0));
+ assertEquals(2, query.getRanking().getFeatures().getDouble("fieldMatch(foo)").getAsDouble(), delta);
+ assertEquals("4.0", query.getRanking().getProperties().get("now").get(0));
assertEquals("8", query.getRanking().getProperties().get("bar").get(0));
}
}