diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-09-11 10:55:27 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-09-11 10:55:27 +0200 |
commit | 96473a891b27e1b6ff7bcd18d1446cd6bdf175e1 (patch) | |
tree | 46227e47bf0da0548c71572dfda86f05c937f338 /container-search | |
parent | a1e962ef727f90da8b31d3f4831b028e55f83399 (diff) |
Since we are trimming we need to reflect that in the offsets too.
Diffstat (limited to 'container-search')
2 files changed, 16 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java b/container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java index c636d4e4b22..388a31d1482 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java @@ -121,6 +121,7 @@ public class InterleavedSearchInvoker extends SearchInvoker implements ResponseM for (int index = query.getOffset(); (index < merged.size()) && (index < needed); index++) { result.hits().add(merged.get(index)); } + query.setOffset(0); // Now we are all trimmed down return result; } diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java index 2306a395c57..110dbedf05a 100644 --- a/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java +++ b/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java @@ -207,16 +207,21 @@ public class InterleavedSearchInvokerTest { @Test public void requireThatMergeOfConcreteHitsObeySorting() throws IOException { InterleavedSearchInvoker invoker = createInterLeavedTestInvoker(A5, B5); + query.setHits(12); Result result = invoker.search(query, null); assertEquals(10, result.hits().size()); assertEquals(11.0, result.hits().get(0).getRelevance().getScore(), DELTA); assertEquals(1.0, result.hits().get(9).getRelevance().getScore(), DELTA); + assertEquals(0, result.getQuery().getOffset()); + assertEquals(12, result.getQuery().getHits()); invoker = createInterLeavedTestInvoker(B5, A5); result = invoker.search(query, null); assertEquals(10, result.hits().size()); assertEquals(11.0, result.hits().get(0).getRelevance().getScore(), DELTA); assertEquals(1.0, result.hits().get(9).getRelevance().getScore(), DELTA); + assertEquals(0, result.getQuery().getOffset()); + assertEquals(12, result.getQuery().getHits()); } @Test @@ -228,12 +233,17 @@ public class InterleavedSearchInvokerTest { assertEquals(3, result.hits().size()); assertEquals(7.0, result.hits().get(0).getRelevance().getScore(), DELTA); assertEquals(3.0, result.hits().get(2).getRelevance().getScore(), DELTA); + assertEquals(0, result.getQuery().getOffset()); + assertEquals(3, result.getQuery().getHits()); invoker = createInterLeavedTestInvoker(B5, A5); + query.setOffset(5); result = invoker.search(query, null); assertEquals(3, result.hits().size()); assertEquals(7.0, result.hits().get(0).getRelevance().getScore(), DELTA); assertEquals(3.0, result.hits().get(2).getRelevance().getScore(), DELTA); + assertEquals(0, result.getQuery().getOffset()); + assertEquals(3, result.getQuery().getHits()); } @Test @@ -246,13 +256,18 @@ public class InterleavedSearchInvokerTest { assertEquals(7.0, result.hits().get(0).getRelevance().getScore(), DELTA); assertEquals(3.0, result.hits().get(2).getRelevance().getScore(), DELTA); assertTrue(result.hits().get(3) instanceof MetaHit); + assertEquals(0, result.getQuery().getOffset()); + assertEquals(3, result.getQuery().getHits()); invoker = createInterLeavedTestInvoker(B5Aux, A5Aux); + query.setOffset(5); result = invoker.search(query, null); assertEquals(7, result.hits().size()); assertEquals(7.0, result.hits().get(0).getRelevance().getScore(), DELTA); assertEquals(3.0, result.hits().get(2).getRelevance().getScore(), DELTA); assertTrue(result.hits().get(3) instanceof MetaHit); + assertEquals(0, result.getQuery().getOffset()); + assertEquals(3, result.getQuery().getHits()); } private static InterleavedSearchInvoker createInterLeavedTestInvoker(List<Double> a, List<Double> b) { |