summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/Query.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/Query.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/Query.java22
1 files changed, 14 insertions, 8 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 9d7d3952a01..766af8f05fd 100644
--- a/container-search/src/main/java/com/yahoo/search/Query.java
+++ b/container-search/src/main/java/com/yahoo/search/Query.java
@@ -858,23 +858,29 @@ public class Query extends com.yahoo.processing.Request implements Cloneable {
commaSeparated(yql, sources);
}
yql.append(" where ");
- yql.append(VespaSerializer.serialize(this));
+ String insert = serializeSortingAndLimits(includeHitsAndOffset);
+ yql.append(VespaSerializer.serialize(this, insert));
+ yql.append(';');
+ return yql.toString();
+ }
+
+ private String serializeSortingAndLimits(boolean includeHitsAndOffset) {
+ StringBuilder insert = new StringBuilder();
if (getRanking().getSorting() != null && getRanking().getSorting().fieldOrders().size() > 0) {
- serializeSorting(yql);
+ serializeSorting(insert);
}
if (includeHitsAndOffset) {
if (getOffset() != 0) {
- yql.append(" limit ").append(getHits() + getOffset())
- .append(" offset ").append(getOffset());
+ insert.append(" limit ").append(getHits() + getOffset())
+ .append(" offset ").append(getOffset());
} else if (getHits() != 10) {
- yql.append(" limit ").append(getHits());
+ insert.append(" limit ").append(getHits());
}
}
if (getTimeout() != defaultTimeout) {
- yql.append(" timeout ").append(getTimeout());
+ insert.append(" timeout ").append(getTimeout());
}
- yql.append(';');
- return yql.toString();
+ return insert.toString();
}
private void serializeSorting(StringBuilder yql) {