aboutsummaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-04-26 16:26:36 +0200
committerJon Bratseth <bratseth@oath.com>2018-04-26 16:26:36 +0200
commit060f6026eb5e38a282b0e0a2214b64c9f13b9c76 (patch)
treed181246bbd75d164470e580fe0c883bb3bfdc987 /container-search
parent5f35f84715de58bfcfe0c5332f60e76ca96c6f7d (diff)
Wire missing query API properties into types
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/Query.java6
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/Ranking.java7
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/ranking/Diversity.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/ranking/SoftTimeout.java4
-rw-r--r--container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java10
5 files changed, 22 insertions, 7 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/Query.java b/container-search/src/main/java/com/yahoo/search/Query.java
index 4e4a4822064..0fed379d446 100644
--- a/container-search/src/main/java/com/yahoo/search/Query.java
+++ b/container-search/src/main/java/com/yahoo/search/Query.java
@@ -208,9 +208,9 @@ public class Query extends com.yahoo.processing.Request implements Cloneable {
argumentType.addField(new FieldDescription(TIMEOUT.toString(), "string", "timeout"));
argumentType.addField(new FieldDescription(FederationSearcher.SOURCENAME.toString(),"string"));
argumentType.addField(new FieldDescription(FederationSearcher.PROVIDERNAME.toString(),"string"));
- argumentType.addField(new FieldDescription(Presentation.PRESENTATION,new QueryProfileFieldType(Presentation.getArgumentType())));
- argumentType.addField(new FieldDescription(Ranking.RANKING,new QueryProfileFieldType(Ranking.getArgumentType())));
- argumentType.addField(new FieldDescription(Model.MODEL,new QueryProfileFieldType(Model.getArgumentType())));
+ argumentType.addField(new FieldDescription(Presentation.PRESENTATION, new QueryProfileFieldType(Presentation.getArgumentType())));
+ argumentType.addField(new FieldDescription(Ranking.RANKING, new QueryProfileFieldType(Ranking.getArgumentType())));
+ argumentType.addField(new FieldDescription(Model.MODEL, new QueryProfileFieldType(Model.getArgumentType())));
argumentType.freeze();
}
public static QueryProfileType getArgumentType() { return argumentType; }
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 44c26f55040..903eedfe870 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
@@ -6,7 +6,9 @@ import com.yahoo.prelude.Freshness;
import com.yahoo.prelude.Location;
import com.yahoo.search.Query;
import com.yahoo.search.query.profile.types.FieldDescription;
+import com.yahoo.search.query.profile.types.QueryProfileFieldType;
import com.yahoo.search.query.profile.types.QueryProfileType;
+import com.yahoo.search.query.ranking.Diversity;
import com.yahoo.search.query.ranking.MatchPhase;
import com.yahoo.search.query.ranking.Matching;
import com.yahoo.search.query.ranking.RankFeatures;
@@ -54,7 +56,10 @@ public class Ranking implements Cloneable {
argumentType.addField(new FieldDescription(LIST_FEATURES, "string", RANKFEATURES.toString()));
argumentType.addField(new FieldDescription(FRESHNESS, "string", "datetime"));
argumentType.addField(new FieldDescription(QUERYCACHE, "string"));
- argumentType.addField(new FieldDescription(MATCH_PHASE, "query-profile", "matchPhase"));
+ argumentType.addField(new FieldDescription(MATCH_PHASE, new QueryProfileFieldType(MatchPhase.getArgumentType()), "matchPhase"));
+ 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"));
argumentType.addField(new FieldDescription(PROPERTIES, "query-profile", "rankproperty"));
argumentType.freeze();
diff --git a/container-search/src/main/java/com/yahoo/search/query/ranking/Diversity.java b/container-search/src/main/java/com/yahoo/search/query/ranking/Diversity.java
index ebd1a4cfc98..83b35c60f15 100644
--- a/container-search/src/main/java/com/yahoo/search/query/ranking/Diversity.java
+++ b/container-search/src/main/java/com/yahoo/search/query/ranking/Diversity.java
@@ -30,7 +30,7 @@ public class Diversity implements Cloneable {
static {
- argumentType =new QueryProfileType(Ranking.DIVERSITY);
+ argumentType = new QueryProfileType(Ranking.DIVERSITY);
argumentType.setStrict(true);
argumentType.setBuiltin(true);
argumentType.addField(new FieldDescription(ATTRIBUTE, "string"));
diff --git a/container-search/src/main/java/com/yahoo/search/query/ranking/SoftTimeout.java b/container-search/src/main/java/com/yahoo/search/query/ranking/SoftTimeout.java
index 75fa9f957d7..1fad45a99e3 100644
--- a/container-search/src/main/java/com/yahoo/search/query/ranking/SoftTimeout.java
+++ b/container-search/src/main/java/com/yahoo/search/query/ranking/SoftTimeout.java
@@ -13,6 +13,7 @@ import java.util.Objects;
* @author baldersheim
*/
public class SoftTimeout implements Cloneable {
+
/** The type representing the property arguments consumed by this */
private static final QueryProfileType argumentType;
@@ -20,9 +21,8 @@ public class SoftTimeout implements Cloneable {
public static final String FACTOR = "factor";
public static final String TAILCOST = "tailcost";
-
static {
- argumentType =new QueryProfileType(Ranking.SOFTTIMEOUT);
+ argumentType = new QueryProfileType(Ranking.SOFTTIMEOUT);
argumentType.setStrict(true);
argumentType.setBuiltin(true);
argumentType.addField(new FieldDescription(TAILCOST, "double"));
diff --git a/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java b/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
index 08f4ace00f0..70896bbad5f 100644
--- a/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
@@ -21,6 +21,7 @@ import com.yahoo.prelude.query.OrItem;
import com.yahoo.prelude.query.QueryException;
import com.yahoo.prelude.query.RankItem;
import com.yahoo.prelude.query.WordItem;
+import com.yahoo.processing.request.CompoundName;
import com.yahoo.search.Query;
import com.yahoo.search.Result;
import com.yahoo.search.Searcher;
@@ -491,6 +492,15 @@ public class QueryTestCase {
}
@Test
+ public void testNativeProperties() {
+ Set<String> nativeProperties = Query.nativeProperties.stream().map(CompoundName::toString).collect(Collectors.toSet());
+ // Sample the content
+ assertTrue(nativeProperties.contains("hits"));
+ assertTrue(nativeProperties.contains("model.sources"));
+ assertTrue(nativeProperties.contains("ranking.matchPhase.attribute"));
+ }
+
+ @Test
public void testQueryPropertyListingAndTrace() {
QueryProfile defaultProfile = new QueryProfile("default");
defaultProfile.setDimensions(new String[]{"x"});