summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-01-26 11:35:25 +0100
committerGitHub <noreply@github.com>2017-01-26 11:35:25 +0100
commit606f7f83c02cd9818d9336611e4cf6e13ffea1b5 (patch)
tree1942f6f302a8b489ce1040e367976c28a6e0a2af /container-search
parent8b378f8d90ed92fc826c0113a2e00123839429f3 (diff)
Revert "Balder/return timeout information up 4"
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/QueryPacket.java3
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/QueryResultPacket.java26
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/templates/DefaultTemplateSet.java12
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/Ranking.java9
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/SoftTimeout.java101
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/properties/QueryProperties.java90
-rw-r--r--container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java12
-rw-r--r--container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java16
-rw-r--r--container-search/src/main/java/com/yahoo/search/rendering/SyncDefaultRenderer.java12
-rw-r--r--container-search/src/main/java/com/yahoo/search/result/Coverage.java3
-rw-r--r--container-search/src/test/java/com/yahoo/search/query/SoftTimeoutTestCase.java49
-rw-r--r--container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java1
13 files changed, 44 insertions, 292 deletions
diff --git a/container-search/src/main/java/com/yahoo/fs4/QueryPacket.java b/container-search/src/main/java/com/yahoo/fs4/QueryPacket.java
index 42fe08ad5a4..3a695efa383 100644
--- a/container-search/src/main/java/com/yahoo/fs4/QueryPacket.java
+++ b/container-search/src/main/java/com/yahoo/fs4/QueryPacket.java
@@ -201,7 +201,6 @@ public class QueryPacket extends Packet {
/**
* query flag bits, taken from searchlib/common/transport.h
**/
- static final int QFLAG_EXTENDED_COVERAGE = 0x00000001;
static final int QFLAG_ESTIMATE = 0x00000080;
static final int QFLAG_DROP_SORTDATA = 0x00004000;
static final int QFLAG_NO_RESULTCACHE = 0x00010000;
@@ -235,7 +234,7 @@ public class QueryPacket extends Packet {
}
static int getQueryFlags(Query query) {
- int flags = QFLAG_EXTENDED_COVERAGE;
+ int flags = 0;
flags |= query.properties().getBoolean(com.yahoo.search.query.Model.ESTIMATE) ? QFLAG_ESTIMATE : 0;
flags |= query.getNoCache() ? QFLAG_NO_RESULTCACHE : 0;
diff --git a/container-search/src/main/java/com/yahoo/fs4/QueryResultPacket.java b/container-search/src/main/java/com/yahoo/fs4/QueryResultPacket.java
index 2714ea7ee76..0b940791326 100644
--- a/container-search/src/main/java/com/yahoo/fs4/QueryResultPacket.java
+++ b/container-search/src/main/java/com/yahoo/fs4/QueryResultPacket.java
@@ -31,11 +31,8 @@ public class QueryResultPacket extends Packet {
/** Whether coverage information is included in this result */
private boolean coverageFeature = false;
- private boolean coverageExtendedFeature = false;
private long coverageDocs = 0;
private long activeDocs = 0;
- private long soonActiveDocs = 0;
- private int degradedReason = 0;
/** Whether the result contains grouping results **/
private boolean groupDataFeature = false;
@@ -84,10 +81,6 @@ public class QueryResultPacket extends Packet {
public long getActiveDocs() { return activeDocs; }
- public long getSoonActiveDocs() { return soonActiveDocs; }
-
- public int getDegradedReason() { return degradedReason; }
-
public boolean getCoverageFull() {
return coverageDocs == activeDocs;
}
@@ -124,13 +117,6 @@ public class QueryResultPacket extends Packet {
coverageDocs = buffer.getLong();
activeDocs = buffer.getLong();
}
- if (coverageExtendedFeature) {
- soonActiveDocs = buffer.getLong();
- degradedReason = buffer.getInt();
- } else {
- soonActiveDocs = activeDocs;
- degradedReason = 0;
- }
decodeDocuments(buffer,documentCount);
if (propsFeature) {
int numMaps = buffer.getInt();
@@ -149,12 +135,11 @@ public class QueryResultPacket extends Packet {
/**
* feature bits
*/
- public static final int QRF_MLD = 0x00000001;
- public static final int QRF_SORTDATA = 0x00000010;
- public static final int QRF_EXTENDED_COVERAGE = 0x00000020;
- public static final int QRF_COVERAGE = 0x00000040;
- public static final int QRF_GROUPDATA = 0x00000200;
- public static final int QRF_PROPERTIES = 0x00000400;
+ public static final int QRF_MLD = 0x00000001;
+ public static final int QRF_SORTDATA = 0x00000010;
+ public static final int QRF_COVERAGE = 0x00000040;
+ public static final int QRF_GROUPDATA = 0x00000200;
+ public static final int QRF_PROPERTIES = 0x00000400;
/**
* Sets the features of this package.
@@ -169,7 +154,6 @@ public class QueryResultPacket extends Packet {
datasetFeature = (0x002 & features) != 0;
// Data given by sortFeature not currently used by QRS:
// sortFeature = (QRF_SORTDATA & features) != 0;
- coverageExtendedFeature = (QRF_EXTENDED_COVERAGE & features) != 0;
coverageFeature = (QRF_COVERAGE & features) != 0;
groupDataFeature = (QRF_GROUPDATA & features) != 0;
propsFeature = (QRF_PROPERTIES & features) != 0;
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
index 872ed5ac11c..aec60473541 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
@@ -417,7 +417,7 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
}
if (resultPacket.getCoverageFeature()) {
- result.setCoverage(new Coverage(resultPacket.getCoverageDocs(), resultPacket.getActiveDocs()).setSoonActive(resultPacket.getSoonActiveDocs()).setDegradedReason(resultPacket.getDegradedReason()));
+ result.setCoverage(new Coverage(resultPacket.getCoverageDocs(), resultPacket.getActiveDocs()));
}
}
diff --git a/container-search/src/main/java/com/yahoo/prelude/templates/DefaultTemplateSet.java b/container-search/src/main/java/com/yahoo/prelude/templates/DefaultTemplateSet.java
index 3158b330146..e88e58b8681 100644
--- a/container-search/src/main/java/com/yahoo/prelude/templates/DefaultTemplateSet.java
+++ b/container-search/src/main/java/com/yahoo/prelude/templates/DefaultTemplateSet.java
@@ -45,11 +45,6 @@ public class DefaultTemplateSet extends UserTemplate<XMLWriter> {
private static final Utf8String NAME = new Utf8String("name");
private static final Utf8String CODE = new Utf8String("code");
private static final Utf8String COVERAGE_DOCS = new Utf8String("coverage-docs");
- private static final Utf8String COVERAGE_ACTIVE = new Utf8String("coverage-active");
- private static final Utf8String COVERAGE_SOON_ACTIVE = new Utf8String("coverage-soon-active");
- private static final Utf8String COVERAGE_DEGRADE_MATCHPHASE = new Utf8String("coverage-degrade-match-phase");
- private static final Utf8String COVERAGE_DEGRADE_TIMEOUT = new Utf8String("coverage-degrade-timeout");
- private static final Utf8String COVERAGE_DEGRADE_ADAPTIVE_TIMEOUT = new Utf8String("coverage-degrade-adaptive-timeout");
private static final Utf8String COVERAGE_NODES = new Utf8String("coverage-nodes");
private static final Utf8String COVERAGE_FULL = new Utf8String("coverage-full");
private static final Utf8String COVERAGE = new Utf8String("coverage");
@@ -166,13 +161,6 @@ public class DefaultTemplateSet extends UserTemplate<XMLWriter> {
protected static void renderCoverageAttributes(Coverage coverage, XMLWriter writer) throws IOException {
if (coverage == null) return;
writer.attribute(COVERAGE_DOCS,coverage.getDocs());
- writer.attribute(COVERAGE_ACTIVE,coverage.getActive());
- writer.attribute(COVERAGE_SOON_ACTIVE,coverage.getSoonActive());
- if (coverage.isDegraded()) {
- writer.attribute(COVERAGE_DEGRADE_MATCHPHASE, coverage.isDegradedByMatchPhase());
- writer.attribute(COVERAGE_DEGRADE_TIMEOUT, coverage.isDegradedByTimeout());
- writer.attribute(COVERAGE_DEGRADE_ADAPTIVE_TIMEOUT, coverage.isDegradedByAdapativeTimeout());
- }
writer.attribute(COVERAGE_NODES,coverage.getNodes());
writer.attribute(COVERAGE_FULL,coverage.getFull());
writer.attribute(COVERAGE,coverage.getResultPercentage());
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 addd759cd29..e543589f74d 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
@@ -37,7 +37,6 @@ public class Ranking implements Cloneable {
public static final String QUERYCACHE = "queryCache";
public static final String MATCH_PHASE = "matchPhase";
public static final String DIVERSITY = "diversity";
- public static final String SOFTTIMEOUT = "softtimeout";
public static final String FEATURES = "features";
public static final String PROPERTIES = "properties";
@@ -83,8 +82,6 @@ public class Ranking implements Cloneable {
private MatchPhase matchPhase = new MatchPhase();
- private SoftTimeout softTimeout = new SoftTimeout();
-
public Ranking(Query parent) {
this.parent = parent;
}
@@ -172,9 +169,6 @@ public class Ranking implements Cloneable {
/** Returns the match phase rank settings of this. This is never null. */
public MatchPhase getMatchPhase() { return matchPhase; }
- /** Returns the soft timeout settings of this. This is never null. */
- public SoftTimeout getSoftTimeout() { return softTimeout; }
-
@Override
public Object clone() {
try {
@@ -185,7 +179,6 @@ public class Ranking implements Cloneable {
clone.rankProperties = this.rankProperties.clone();
clone.rankFeatures = this.rankFeatures.clone();
clone.matchPhase = this.matchPhase.clone();
- clone.softTimeout = this.softTimeout.clone();
return clone;
}
catch (CloneNotSupportedException e) {
@@ -215,7 +208,6 @@ public class Ranking implements Cloneable {
hash += 11 * rankFeatures.hashCode();
hash += 13 * rankProperties.hashCode();
hash += 17 * matchPhase.hashCode();
- hash += 19 * softTimeout.hashCode();
return Ranking.class.hashCode() + QueryHelper.combineHash(sorting,location,profile,hash);
}
@@ -240,7 +232,6 @@ public class Ranking implements Cloneable {
public void prepare() {
rankFeatures.prepare(rankProperties);
matchPhase.prepare(rankProperties);
- softTimeout.prepare(rankProperties);
prepareNow(freshness);
}
diff --git a/container-search/src/main/java/com/yahoo/search/query/SoftTimeout.java b/container-search/src/main/java/com/yahoo/search/query/SoftTimeout.java
deleted file mode 100644
index 2db1235f72c..00000000000
--- a/container-search/src/main/java/com/yahoo/search/query/SoftTimeout.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package com.yahoo.search.query;
-
-import com.yahoo.search.query.profile.types.FieldDescription;
-import com.yahoo.search.query.profile.types.QueryProfileType;
-import com.yahoo.search.query.ranking.RankProperties;
-
-import java.util.Objects;
-
-/**
- * Holds the settings for the soft-timeout feature.
- *
- * @author balder
- */
-public class SoftTimeout implements Cloneable {
- /** The type representing the property arguments consumed by this */
- private static final QueryProfileType argumentType;
-
- public static final String ENABLE = "enable";
- public static final String FACTOR = "factor";
- public static final String TAILCOST = "tailcost";
-
-
- static {
- argumentType =new QueryProfileType(Ranking.SOFTTIMEOUT);
- argumentType.setStrict(true);
- argumentType.setBuiltin(true);
- argumentType.addField(new FieldDescription(TAILCOST, "double"));
- argumentType.addField(new FieldDescription(ENABLE, "boolean"));
- argumentType.freeze();
- }
- public static QueryProfileType getArgumentType() { return argumentType; }
-
- public Boolean enable = null;
- private Double factor = null;
- private Double tailcost = null;
-
- public void setEnable(boolean enable) { this.enable = enable; }
-
- public Boolean getEnable() { return enable; }
-
- public void setFactor(double factor) {
- if ((factor < 0.0) || (factor > 1.0)) {
- throw new IllegalArgumentException("factor must be in the range [0.0, 1.0]. It is " + factor);
- }
- this.factor = factor;
- }
- public Double getFactor() { return factor; }
- public void setTailcost(double tailcost) {
- if ((tailcost < 0.0) || (tailcost > 1.0)) {
- throw new IllegalArgumentException("tailcost must be in the range [0.0, 1.0]. It is " + tailcost);
- }
- this.tailcost = tailcost;
- }
- public Double getTailcost() { return tailcost; }
-
- /** Internal operation - DO NOT USE */
- public void prepare(RankProperties rankProperties) {
-
- if (enable != null) {
- rankProperties.put("vespa.softtimeout.enable", String.valueOf(enable));
- }
- if (factor != null) {
- rankProperties.put("vespa.softtimeout.factor", String.valueOf(factor));
- }
- if (tailcost != null) {
- rankProperties.put("vespa.softtimeout.tailcost", String.valueOf(tailcost));
- }
- }
-
- @Override
- public SoftTimeout clone() {
- try {
- return (SoftTimeout) super.clone();
- }
- catch (CloneNotSupportedException e) {
- throw new RuntimeException("Won't happen", e);
- }
- }
-
- @Override
- public int hashCode() {
- int hash = 0;
- if (enable != null) hash += 11 * enable.hashCode();
- if (factor != null) hash += 13 * factor.hashCode();
- if (tailcost != null) hash += 17 * tailcost.hashCode();
- return hash;
- }
-
- @Override
- public boolean equals(Object o) {
- if (o == this) return true;
- if ( ! (o instanceof SoftTimeout)) return false;
-
- SoftTimeout other = (SoftTimeout)o;
- if ( ! Objects.equals(this.enable, other.enable)) return false;
- if ( ! Objects.equals(this.factor, other.factor)) return false;
- if ( ! Objects.equals(this.tailcost, other.tailcost)) return false;
- return true;
- }
-
-}
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 30154b223a5..5abc6663063 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
@@ -74,36 +74,34 @@ public class QueryProperties extends Properties {
public Object get(CompoundName key, Map<String,String> context,
com.yahoo.processing.request.Properties substitution) {
if (key.size()==2 && key.first().equals(Model.MODEL)) {
- Model model = query.getModel();
- if (key.last().equals(Model.QUERY_STRING)) return model.getQueryString();
- if (key.last().equals(Model.TYPE)) return model.getType();
- if (key.last().equals(Model.FILTER)) return model.getFilter();
- if (key.last().equals(Model.DEFAULT_INDEX)) return model.getDefaultIndex();
- if (key.last().equals(Model.LANGUAGE)) return model.getLanguage();
- if (key.last().equals(Model.ENCODING)) return model.getEncoding();
- if (key.last().equals(Model.SOURCES)) return model.getSources();
- if (key.last().equals(Model.SEARCH_PATH)) return model.getSearchPath();
- if (key.last().equals(Model.RESTRICT)) return model.getRestrict();
+ if (key.last().equals(Model.QUERY_STRING)) return query.getModel().getQueryString();
+ if (key.last().equals(Model.TYPE)) return query.getModel().getType();
+ if (key.last().equals(Model.FILTER)) return query.getModel().getFilter();
+ if (key.last().equals(Model.DEFAULT_INDEX)) return query.getModel().getDefaultIndex();
+ if (key.last().equals(Model.LANGUAGE)) return query.getModel().getLanguage();
+ if (key.last().equals(Model.ENCODING)) return query.getModel().getEncoding();
+ if (key.last().equals(Model.SOURCES)) return query.getModel().getSources();
+ if (key.last().equals(Model.SEARCH_PATH)) return query.getModel().getSearchPath();
+ if (key.last().equals(Model.RESTRICT)) return query.getModel().getRestrict();
}
else if (key.first().equals(Ranking.RANKING)) {
- Ranking ranking = query.getRanking();
if (key.size()==2) {
- if (key.last().equals(Ranking.LOCATION)) return ranking.getLocation();
- if (key.last().equals(Ranking.PROFILE)) return ranking.getProfile();
- if (key.last().equals(Ranking.SORTING)) return ranking.getSorting();
- if (key.last().equals(Ranking.FRESHNESS)) return ranking.getFreshness();
- if (key.last().equals(Ranking.QUERYCACHE)) return ranking.getQueryCache();
- if (key.last().equals(Ranking.LIST_FEATURES)) return ranking.getListFeatures();
+ if (key.last().equals(Ranking.LOCATION)) return query.getRanking().getLocation();
+ if (key.last().equals(Ranking.PROFILE)) return query.getRanking().getProfile();
+ if (key.last().equals(Ranking.SORTING)) return query.getRanking().getSorting();
+ if (key.last().equals(Ranking.FRESHNESS)) return query.getRanking().getFreshness();
+ if (key.last().equals(Ranking.QUERYCACHE)) return query.getRanking().getQueryCache();
+ if (key.last().equals(Ranking.LIST_FEATURES)) return query.getRanking().getListFeatures();
}
else if (key.size()>=3 && key.get(1).equals(Ranking.MATCH_PHASE)) {
if (key.size() == 3) {
- MatchPhase matchPhase = ranking.getMatchPhase();
+ MatchPhase matchPhase = query.getRanking().getMatchPhase();
if (key.last().equals(MatchPhase.ATTRIBUTE)) return matchPhase.getAttribute();
if (key.last().equals(MatchPhase.ASCENDING)) return matchPhase.getAscending();
if (key.last().equals(MatchPhase.MAX_HITS)) return matchPhase.getMaxHits();
if (key.last().equals(MatchPhase.MAX_FILTER_COVERAGE)) return matchPhase.getMaxFilterCoverage();
} else if (key.size() >= 4 && key.get(2).equals(Ranking.DIVERSITY)) {
- Diversity diversity = ranking.getMatchPhase().getDiversity();
+ Diversity diversity = query.getRanking().getMatchPhase().getDiversity();
if (key.size() == 4) {
if (key.last().equals(Diversity.ATTRIBUTE)) return diversity.getAttribute();
if (key.last().equals(Diversity.MINGROUPS)) return diversity.getMinGroups();
@@ -113,16 +111,10 @@ public class QueryProperties extends Properties {
}
}
}
- else if (key.size() == 3 && key.get(1).equals(Ranking.SOFTTIMEOUT)) {
- SoftTimeout soft = ranking.getSoftTimeout();
- if (key.last().equals(SoftTimeout.ENABLE)) return soft.getEnable();
- if (key.last().equals(SoftTimeout.FACTOR)) return soft.getFactor();
- if (key.last().equals(SoftTimeout.TAILCOST)) return soft.getTailcost();
- }
else if (key.size()>2) {
// pass the portion after "ranking.features/properties" down
- if (key.get(1).equals(Ranking.FEATURES)) return ranking.getFeatures().getObject(key.rest().rest().toString());
- if (key.get(1).equals(Ranking.PROPERTIES)) return ranking.getProperties().get(key.rest().rest().toString());
+ if (key.get(1).equals(Ranking.FEATURES)) return query.getRanking().getFeatures().getObject(key.rest().rest().toString());
+ if (key.get(1).equals(Ranking.PROPERTIES)) return query.getRanking().getProperties().get(key.rest().rest().toString());
}
}
else if (key.size()==2 && key.first().equals(Presentation.PRESENTATION)) {
@@ -157,47 +149,45 @@ public class QueryProperties extends Properties {
// Note: The defaults here are never used
try {
if (key.size()==2 && key.first().equals(Model.MODEL)) {
- Model model = query.getModel();
if (key.last().equals(Model.QUERY_STRING))
- model.setQueryString(asString(value, ""));
+ query.getModel().setQueryString(asString(value, ""));
else if (key.last().equals(Model.TYPE))
- model.setType(asString(value, "ANY"));
+ query.getModel().setType(asString(value, "ANY"));
else if (key.last().equals(Model.FILTER))
- model.setFilter(asString(value, ""));
+ query.getModel().setFilter(asString(value, ""));
else if (key.last().equals(Model.DEFAULT_INDEX))
- model.setDefaultIndex(asString(value, ""));
+ query.getModel().setDefaultIndex(asString(value, ""));
else if (key.last().equals(Model.LANGUAGE))
- model.setLanguage(asString(value, ""));
+ query.getModel().setLanguage(asString(value, ""));
else if (key.last().equals(Model.ENCODING))
- model.setEncoding(asString(value,""));
+ query.getModel().setEncoding(asString(value,""));
else if (key.last().equals(Model.SEARCH_PATH))
- model.setSearchPath(asString(value,""));
+ query.getModel().setSearchPath(asString(value,""));
else if (key.last().equals(Model.SOURCES))
- model.setSources(asString(value,""));
+ query.getModel().setSources(asString(value,""));
else if (key.last().equals(Model.RESTRICT))
- model.setRestrict(asString(value,""));
+ query.getModel().setRestrict(asString(value,""));
else
throwIllegalParameter(key.last(),Model.MODEL);
}
else if (key.first().equals(Ranking.RANKING)) {
- Ranking ranking = query.getRanking();
if (key.size()==2) {
if (key.last().equals(Ranking.LOCATION))
- ranking.setLocation(asString(value,""));
+ query.getRanking().setLocation(asString(value,""));
else if (key.last().equals(Ranking.PROFILE))
- ranking.setProfile(asString(value,""));
+ query.getRanking().setProfile(asString(value,""));
else if (key.last().equals(Ranking.SORTING))
- ranking.setSorting(asString(value,""));
+ query.getRanking().setSorting(asString(value,""));
else if (key.last().equals(Ranking.FRESHNESS))
- ranking.setFreshness(asString(value, ""));
+ query.getRanking().setFreshness(asString(value, ""));
else if (key.last().equals(Ranking.QUERYCACHE))
- ranking.setQueryCache(asBoolean(value, false));
+ query.getRanking().setQueryCache(asBoolean(value, false));
else if (key.last().equals(Ranking.LIST_FEATURES))
- ranking.setListFeatures(asBoolean(value,false));
+ query.getRanking().setListFeatures(asBoolean(value,false));
}
else if (key.size()>=3 && key.get(1).equals(Ranking.MATCH_PHASE)) {
if (key.size() == 3) {
- MatchPhase matchPhase = ranking.getMatchPhase();
+ MatchPhase matchPhase = query.getRanking().getMatchPhase();
if (key.last().equals(MatchPhase.ATTRIBUTE)) {
matchPhase.setAttribute(asString(value, null));
} else if (key.last().equals(MatchPhase.ASCENDING)) {
@@ -208,7 +198,7 @@ public class QueryProperties extends Properties {
matchPhase.setMaxFilterCoverage(asDouble(value, 0.2));
}
} else if (key.size() > 3 && key.get(2).equals(Ranking.DIVERSITY)) {
- Diversity diversity = ranking.getMatchPhase().getDiversity();
+ Diversity diversity = query.getRanking().getMatchPhase().getDiversity();
if (key.last().equals(Diversity.ATTRIBUTE)) {
diversity.setAttribute(asString(value, null));
} else if (key.last().equals(Diversity.MINGROUPS)) {
@@ -222,18 +212,12 @@ public class QueryProperties extends Properties {
}
}
}
- else if (key.size() == 3 && key.get(1).equals(Ranking.SOFTTIMEOUT)) {
- SoftTimeout soft = ranking.getSoftTimeout();
- if (key.last().equals(SoftTimeout.ENABLE)) soft.setEnable(asBoolean(value, false));
- if (key.last().equals(SoftTimeout.FACTOR)) soft.setFactor(asDouble(value, 0.50));
- if (key.last().equals(SoftTimeout.TAILCOST)) soft.setTailcost(asDouble(value, 0.10));
- }
else if (key.size()>2) {
String restKey = key.rest().rest().toString();
if (key.get(1).equals(Ranking.FEATURES))
setRankingFeature(query, restKey, toSpecifiedType(restKey, value, profileRegistry.getTypeRegistry().getComponent("features")));
else if (key.get(1).equals(Ranking.PROPERTIES))
- ranking.getProperties().put(restKey, toSpecifiedType(restKey, value, profileRegistry.getTypeRegistry().getComponent("properties")));
+ query.getRanking().getProperties().put(restKey, toSpecifiedType(restKey, value, profileRegistry.getTypeRegistry().getComponent("properties")));
else
throwIllegalParameter(key.rest().toString(),Ranking.RANKING);
}
diff --git a/container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java b/container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java
index e35f21b1797..a742a54e866 100644
--- a/container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java
+++ b/container-search/src/main/java/com/yahoo/search/rendering/DefaultRenderer.java
@@ -60,11 +60,6 @@ public final class DefaultRenderer extends AsynchronousSectionedRenderer<Result>
private static final Utf8String NAME = new Utf8String("name");
private static final Utf8String CODE = new Utf8String("code");
private static final Utf8String COVERAGE_DOCS = new Utf8String("coverage-docs");
- private static final Utf8String COVERAGE_ACTIVE = new Utf8String("coverage-active");
- private static final Utf8String COVERAGE_SOON_ACTIVE = new Utf8String("coverage-soon-active");
- private static final Utf8String COVERAGE_DEGRADE_MATCHPHASE = new Utf8String("coverage-degrade-match-phase");
- private static final Utf8String COVERAGE_DEGRADE_TIMEOUT = new Utf8String("coverage-degrade-timeout");
- private static final Utf8String COVERAGE_DEGRADE_ADAPTIVE_TIMEOUT = new Utf8String("coverage-degrade-adaptive-timeout");
private static final Utf8String COVERAGE_NODES = new Utf8String("coverage-nodes");
private static final Utf8String COVERAGE_FULL = new Utf8String("coverage-full");
private static final Utf8String COVERAGE = new Utf8String("coverage");
@@ -157,13 +152,6 @@ public final class DefaultRenderer extends AsynchronousSectionedRenderer<Result>
protected static void renderCoverageAttributes(Coverage coverage, XMLWriter writer) throws IOException {
if (coverage == null) return;
writer.attribute(COVERAGE_DOCS,coverage.getDocs());
- writer.attribute(COVERAGE_ACTIVE,coverage.getActive());
- writer.attribute(COVERAGE_SOON_ACTIVE,coverage.getSoonActive());
- if (coverage.isDegraded()) {
- writer.attribute(COVERAGE_DEGRADE_MATCHPHASE, coverage.isDegradedByMatchPhase());
- writer.attribute(COVERAGE_DEGRADE_TIMEOUT, coverage.isDegradedByTimeout());
- writer.attribute(COVERAGE_DEGRADE_ADAPTIVE_TIMEOUT, coverage.isDegradedByAdapativeTimeout());
- }
writer.attribute(COVERAGE_NODES,coverage.getNodes());
writer.attribute(COVERAGE_FULL,coverage.getFull());
writer.attribute(COVERAGE,coverage.getResultPercentage());
diff --git a/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java b/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java
index b9ab8f79329..31b231a0997 100644
--- a/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java
+++ b/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java
@@ -96,12 +96,6 @@ public class JsonRenderer extends AsynchronousSectionedRenderer<Result> {
private static final String COVERAGE = "coverage";
private static final String COVERAGE_COVERAGE = "coverage";
private static final String COVERAGE_DOCUMENTS = "documents";
- private static final String COVERAGE_ACTIVE = "active";
- private static final String COVERAGE_SOON_ACTIVE = "soon-active";
- private static final String COVERAGE_DEGRADE = "degraded";
- private static final String COVERAGE_DEGRADE_MATCHPHASE = "match-phase";
- private static final String COVERAGE_DEGRADE_TIMEOUT = "timeout";
- private static final String COVERAGE_DEGRADE_ADAPTIVE_TIMEOUT = "adaptive-timeout";
private static final String COVERAGE_FULL = "full";
private static final String COVERAGE_NODES = "nodes";
private static final String COVERAGE_RESULTS = "results";
@@ -445,16 +439,6 @@ public class JsonRenderer extends AsynchronousSectionedRenderer<Result> {
generator.writeObjectFieldStart(COVERAGE);
generator.writeNumberField(COVERAGE_COVERAGE, c.getResultPercentage());
generator.writeNumberField(COVERAGE_DOCUMENTS, c.getDocs());
- generator.writeNumberField(COVERAGE_ACTIVE, c.getActive());
- generator.writeNumberField(COVERAGE_SOON_ACTIVE, c.getSoonActive());
- if (c.isDegraded()) {
- generator.writeObjectFieldStart(COVERAGE_DEGRADE);
- generator.writeBooleanField(COVERAGE_DEGRADE_MATCHPHASE, c.isDegradedByMatchPhase());
- generator.writeBooleanField(COVERAGE_DEGRADE_TIMEOUT, c.isDegradedByTimeout());
- generator.writeBooleanField(COVERAGE_DEGRADE_ADAPTIVE_TIMEOUT, c.isDegradedByAdapativeTimeout());
- generator.writeEndObject();
- }
- generator.writeNumberField(COVERAGE_DOCUMENTS, c.getDocs());
generator.writeBooleanField(COVERAGE_FULL, c.getFull());
generator.writeNumberField(COVERAGE_NODES, c.getNodes());
generator.writeNumberField(COVERAGE_RESULTS, c.getResultSets());
diff --git a/container-search/src/main/java/com/yahoo/search/rendering/SyncDefaultRenderer.java b/container-search/src/main/java/com/yahoo/search/rendering/SyncDefaultRenderer.java
index 5a0695c0491..e394a674a06 100644
--- a/container-search/src/main/java/com/yahoo/search/rendering/SyncDefaultRenderer.java
+++ b/container-search/src/main/java/com/yahoo/search/rendering/SyncDefaultRenderer.java
@@ -54,11 +54,6 @@ public final class SyncDefaultRenderer extends Renderer {
private static final Utf8String NAME = new Utf8String("name");
private static final Utf8String CODE = new Utf8String("code");
private static final Utf8String COVERAGE_DOCS = new Utf8String("coverage-docs");
- private static final Utf8String COVERAGE_ACTIVE = new Utf8String("coverage-active");
- private static final Utf8String COVERAGE_SOON_ACTIVE = new Utf8String("coverage-soon-active");
- private static final Utf8String COVERAGE_DEGRADE_MATCHPHASE = new Utf8String("coverage-degrade-match-phase");
- private static final Utf8String COVERAGE_DEGRADE_TIMEOUT = new Utf8String("coverage-degrade-timeout");
- private static final Utf8String COVERAGE_DEGRADE_ADAPTIVE_TIMEOUT = new Utf8String("coverage-degrade-adaptive-timeout");
private static final Utf8String COVERAGE_NODES = new Utf8String("coverage-nodes");
private static final Utf8String COVERAGE_FULL = new Utf8String("coverage-full");
private static final Utf8String COVERAGE = new Utf8String("coverage");
@@ -171,13 +166,6 @@ public final class SyncDefaultRenderer extends Renderer {
protected static void renderCoverageAttributes(Coverage coverage, XMLWriter writer) throws IOException {
if (coverage == null) return;
writer.attribute(COVERAGE_DOCS,coverage.getDocs());
- writer.attribute(COVERAGE_ACTIVE,coverage.getActive());
- writer.attribute(COVERAGE_SOON_ACTIVE,coverage.getSoonActive());
- if (coverage.isDegraded()) {
- writer.attribute(COVERAGE_DEGRADE_MATCHPHASE, coverage.isDegradedByMatchPhase());
- writer.attribute(COVERAGE_DEGRADE_TIMEOUT, coverage.isDegradedByTimeout());
- writer.attribute(COVERAGE_DEGRADE_ADAPTIVE_TIMEOUT, coverage.isDegradedByAdapativeTimeout());
- }
writer.attribute(COVERAGE_NODES,coverage.getNodes());
writer.attribute(COVERAGE_FULL,coverage.getFull());
writer.attribute(COVERAGE,coverage.getResultPercentage());
diff --git a/container-search/src/main/java/com/yahoo/search/result/Coverage.java b/container-search/src/main/java/com/yahoo/search/result/Coverage.java
index 13deaf36db7..bf34c42b97a 100644
--- a/container-search/src/main/java/com/yahoo/search/result/Coverage.java
+++ b/container-search/src/main/java/com/yahoo/search/result/Coverage.java
@@ -21,7 +21,4 @@ public class Coverage extends com.yahoo.container.handler.Coverage {
super(docs, nodes, full, resultSets);
}
- public Coverage setSoonActive(long soonActive) { this.soonActive = soonActive; return this; }
- public Coverage setDegradedReason(int degradedReason) { this.degradedReason = degradedReason; return this; }
-
}
diff --git a/container-search/src/test/java/com/yahoo/search/query/SoftTimeoutTestCase.java b/container-search/src/test/java/com/yahoo/search/query/SoftTimeoutTestCase.java
deleted file mode 100644
index 3b230aa9416..00000000000
--- a/container-search/src/test/java/com/yahoo/search/query/SoftTimeoutTestCase.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.yahoo.search.query;
-
-import com.yahoo.prelude.query.QueryException;
-import com.yahoo.search.Query;
-import org.junit.Test;
-import static org.junit.Assert.*;
-
-/**
- * @author baldersheim
- */
-public class SoftTimeoutTestCase {
- @Test
- public void testDefaultsInQuery() {
- Query query=new Query("?query=test");
- assertNull(query.getRanking().getSoftTimeout().getEnable());
- assertNull(query.getRanking().getSoftTimeout().getFactor());
- assertNull(query.getRanking().getSoftTimeout().getTailcost());
- }
-
- @Test
- public void testQueryOverride() {
- Query query=new Query("?query=test&ranking.softtimeout.enable&ranking.softtimeout.factor=0.7&ranking.softtimeout.tailcost=0.3");
- assertTrue(query.getRanking().getSoftTimeout().getEnable());
- assertEquals(Double.valueOf(0.7), query.getRanking().getSoftTimeout().getFactor());
- assertEquals(Double.valueOf(0.3), query.getRanking().getSoftTimeout().getTailcost());
- query.prepare();
- assertEquals("true", query.getRanking().getProperties().get("vespa.softtimeout.enable").get(0));
- assertEquals("0.7", query.getRanking().getProperties().get("vespa.softtimeout.factor").get(0));
- assertEquals("0.3", query.getRanking().getProperties().get("vespa.softtimeout.tailcost").get(0));
- }
-
- private void verifyException(String key, String value) {
- try {
- new Query("?query=test&ranking.softtimeout."+key+"="+value);
- assertFalse(true);
- } catch (QueryException e) {
- assertEquals("Invalid request parameter", e.getMessage());
- assertEquals("Could not set 'ranking.softtimeout." + key + "' to '" + value +"'", e.getCause().getMessage());
- assertEquals(key + " must be in the range [0.0, 1.0]. It is " + value, e.getCause().getCause().getMessage());
- }
- }
- @Test
- public void testLimits() {
- verifyException("factor", "-0.1");
- verifyException("factor", "1.1");
- verifyException("tailcost", "-0.1");
- verifyException("tailcost", "1.1");
- }
-}
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 ac1da3ada1c..eaaf87bc035 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
@@ -100,7 +100,6 @@ public class QueryTestCase {
assertNotSame(q.getRanking().getProperties(), p.getRanking().getProperties());
assertNotSame(q.getRanking().getMatchPhase(), p.getRanking().getMatchPhase());
assertNotSame(q.getRanking().getMatchPhase().getDiversity(), p.getRanking().getMatchPhase().getDiversity());
- assertNotSame(q.getRanking().getSoftTimeout(), p.getRanking().getSoftTimeout());
assertNotSame(q.getPresentation(), p.getPresentation());
assertNotSame(q.getPresentation().getHighlight(), p.getPresentation().getHighlight());