diff options
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.java | 22 |
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) { |