diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-09 13:49:42 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-09 13:49:42 +0100 |
commit | d35770c1126af16301feb3ed3ef23410a417453c (patch) | |
tree | 701418d275bf5caf9ffa0ab5f23226f9c85d2aa9 /container-search/src/test/java/com/yahoo/search/grouping | |
parent | e19542f74d4692729ef744b74f5ef0d0715c111f (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.java | 21 |
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)); } } |