diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-04-26 16:26:36 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-04-26 16:26:36 +0200 |
commit | 060f6026eb5e38a282b0e0a2214b64c9f13b9c76 (patch) | |
tree | d181246bbd75d164470e580fe0c883bb3bfdc987 /container-search | |
parent | 5f35f84715de58bfcfe0c5332f60e76ca96c6f7d (diff) |
Wire missing query API properties into types
Diffstat (limited to 'container-search')
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"}); |