summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-05-04 17:52:26 +0200
committerJon Bratseth <bratseth@gmail.com>2022-05-04 17:52:26 +0200
commitdce62098d5afa27ab6945d4c05fea6b6a3feb9b2 (patch)
treec3c27e81f3ccdf7affddc9b568e9a765921226b3 /container-search
parentf25396044fbc0f0ab4ee4b84100893ccbbd5be29 (diff)
Add 'input' as alias to 'ranking.feature'
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/Ranking.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/properties/QueryProperties.java8
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/properties/QueryPropertyAliases.java1
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/ranking/RankFeatures.java6
-rw-r--r--container-search/src/test/java/com/yahoo/search/query/RankProfileInputTest.java2
5 files changed, 10 insertions, 9 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/query/Ranking.java b/container-search/src/main/java/com/yahoo/search/query/Ranking.java
index fd0cd5a85b7..e11786c2f2e 100644
--- a/container-search/src/main/java/com/yahoo/search/query/Ranking.java
+++ b/container-search/src/main/java/com/yahoo/search/query/Ranking.java
@@ -69,7 +69,7 @@ public class Ranking implements Cloneable {
argumentType.addField(new FieldDescription(DIVERSITY, new QueryProfileFieldType(Diversity.getArgumentType())));
argumentType.addField(new FieldDescription(SOFTTIMEOUT, new QueryProfileFieldType(SoftTimeout.getArgumentType())));
argumentType.addField(new FieldDescription(MATCHING, new QueryProfileFieldType(Matching.getArgumentType())));
- argumentType.addField(new FieldDescription(FEATURES, "query-profile", "rankfeature")); // Repeated at the end of RankFeatures
+ argumentType.addField(new FieldDescription(FEATURES, "query-profile", "rankfeature input")); // Repeated at the end of RankFeatures
argumentType.addField(new FieldDescription(PROPERTIES, "query-profile", "rankproperty"));
argumentType.freeze();
argumentTypeName = new CompoundName(argumentType.getId().getName());
diff --git a/container-search/src/main/java/com/yahoo/search/query/properties/QueryProperties.java b/container-search/src/main/java/com/yahoo/search/query/properties/QueryProperties.java
index 0fd11d9edd7..828d4117eee 100644
--- a/container-search/src/main/java/com/yahoo/search/query/properties/QueryProperties.java
+++ b/container-search/src/main/java/com/yahoo/search/query/properties/QueryProperties.java
@@ -137,12 +137,7 @@ public class QueryProperties extends Properties {
} else if (key.size() == 3 && key.get(1).equals(Presentation.FORMAT)) {
if (key.last().equals(Presentation.TENSORS)) return query.getPresentation().getTensorShortForm();
}
- }
- else if (key.first().equals("rankfeature") || key.first().equals("featureoverride")) { // featureoverride is deprecated
- return query.getRanking().getFeatures().getObject(key.rest().toString());
- } else if (key.first().equals("rankproperty")) {
- return query.getRanking().getProperties().get(key.rest().toString());
- } else if (key.size()==1) {
+ } else if (key.size() == 1) {
if (key.equals(Query.HITS)) return query.getHits();
if (key.equals(Query.OFFSET)) return query.getOffset();
if (key.equals(Query.TRACE_LEVEL)) return query.getTraceLevel();
@@ -160,6 +155,7 @@ public class QueryProperties extends Properties {
@Override
public void set(CompoundName key, Object value, Map<String,String> context) {
+ System.out.println("Setting " + key);
// Note: The defaults here are never used
try {
if (key.size() == 2 && key.first().equals(Model.MODEL)) {
diff --git a/container-search/src/main/java/com/yahoo/search/query/properties/QueryPropertyAliases.java b/container-search/src/main/java/com/yahoo/search/query/properties/QueryPropertyAliases.java
index e46668ffb83..d089283a4b9 100644
--- a/container-search/src/main/java/com/yahoo/search/query/properties/QueryPropertyAliases.java
+++ b/container-search/src/main/java/com/yahoo/search/query/properties/QueryPropertyAliases.java
@@ -24,6 +24,7 @@ public class QueryPropertyAliases extends PropertyAliases {
@Override
protected CompoundName unalias(CompoundName nameOrAlias) {
if (nameOrAlias.first().equalsIgnoreCase("rankfeature")
+ || nameOrAlias.first().equalsIgnoreCase("input")
|| nameOrAlias.first().equalsIgnoreCase("featureoverride")) // deprecated: TODO Remove on Vespa 8
return nameOrAlias.rest().prepend("ranking", "features");
else if (nameOrAlias.first().equalsIgnoreCase("rankproperty"))
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 dab824a6fef..aaab86f248c 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
@@ -191,8 +191,12 @@ public class RankFeatures implements Cloneable {
return JSON.encode(features);
}
+ // See also QueryPropertyAliases
public static boolean isFeatureName(String fullPropertyName) {
- return fullPropertyName.startsWith("ranking.features.") || fullPropertyName.startsWith("rankfeature.");
+ return fullPropertyName.startsWith("ranking.features.") ||
+ fullPropertyName.startsWith("rankfeature.") ||
+ fullPropertyName.startsWith("featureoverride.") ||
+ fullPropertyName.startsWith("input.");
}
}
diff --git a/container-search/src/test/java/com/yahoo/search/query/RankProfileInputTest.java b/container-search/src/test/java/com/yahoo/search/query/RankProfileInputTest.java
index f34ad783277..e30e8bf119a 100644
--- a/container-search/src/test/java/com/yahoo/search/query/RankProfileInputTest.java
+++ b/container-search/src/test/java/com/yahoo/search/query/RankProfileInputTest.java
@@ -188,7 +188,7 @@ public class RankProfileInputTest {
return new Query.Builder()
.setSchemaInfo(createSchemaInfo())
.setQueryProfile(createQueryProfile()) // Use the instantiation path with query profiles
- .setRequest(HttpRequest.createTestRequest("?" + urlEncode("ranking.features.query(myTensor1)") +
+ .setRequest(HttpRequest.createTestRequest("?" + urlEncode("input.query(myTensor1)") +
"=" + urlEncode(tensorString) +
"&ranking=" + profile +
"&" + additionalParams,