use of com.yahoo.search.result.Coverage in project vespa by vespa-engine.
the class JsonRendererTestCase method testCoverage.
@Test
public void testCoverage() throws InterruptedException, ExecutionException, IOException {
String expected = "{\n" + " \"root\": {\n" + " \"coverage\": {\n" + " \"coverage\": 83,\n" + " \"documents\": 500,\n" + " \"degraded\" : {\n" + " \"match-phase\" : true,\n" + " \"timeout\" : false,\n" + " \"adaptive-timeout\" : true,\n" + " \"non-ideal-state\" : false" + " },\n" + " \"full\": false,\n" + " \"nodes\": 0,\n" + " \"results\": 1,\n" + " \"resultsFull\": 0\n" + " },\n" + " \"fields\": {\n" + " \"totalCount\": 0\n" + " },\n" + " \"id\": \"toplevel\",\n" + " \"relevance\": 1.0\n" + " }\n" + "}";
Query q = new Query("/?query=a&tracelevel=5&reportCoverage=true");
Execution execution = new Execution(Execution.Context.createContextStub());
Result r = new Result(q);
r.setCoverage(new Coverage(500, 600).setDegradedReason(5));
String summary = render(execution, r);
assertEqualJson(expected, summary);
}
use of com.yahoo.search.result.Coverage in project vespa by vespa-engine.
the class CoverageTestCase method testZeroCoverage.
public void testZeroCoverage() {
Coverage c = new Coverage(0L, 0, false, 0);
assertEquals(0, c.getResultPercentage());
assertEquals(0, c.getResultSets());
}
use of com.yahoo.search.result.Coverage in project vespa by vespa-engine.
the class CoverageTestCase method testRequestingCoverageSearchScenario.
public void testRequestingCoverageSearchScenario() {
boolean create = true;
Result federationSearcherResult = new Result(new Query());
Result singleSourceResult = new Result(new Query());
singleSourceResult.setCoverage(new Coverage(10, 1, true));
federationSearcherResult.mergeWith(singleSourceResult);
assertEquals(1, federationSearcherResult.getCoverage(create).getResultSets());
}
use of com.yahoo.search.result.Coverage in project vespa by vespa-engine.
the class CoverageTestCase method testActiveCoverage.
public void testActiveCoverage() {
Coverage c = new Coverage(6, 5);
assertEquals(5, c.getActive());
assertEquals(6, c.getDocs());
Coverage d = new Coverage(7, 6);
c.merge(d);
assertEquals(11, c.getActive());
assertEquals(13, c.getDocs());
}
use of com.yahoo.search.result.Coverage in project vespa by vespa-engine.
the class XMLRendererTestCase method testImplicitDefaultRender.
@Test
public final void testImplicitDefaultRender() throws Exception {
Query q = new Query("/?query=a&tracelevel=5&reportCoverage=true");
q.getPresentation().setTiming(true);
Result r = new Result(q);
r.setCoverage(new Coverage(500, 1, true));
TimeTracker t = new TimeTracker(new Chain<Searcher>(new UselessSearcher("first"), new UselessSearcher("second"), new UselessSearcher("third")));
ElapsedTimeTestCase.doInjectTimeSource(t, new CreativeTimeSource(new long[] { 1L, 2L, 3L, 4L, 5L, 6L, 7L }));
t.sampleSearch(0, true);
t.sampleSearch(1, true);
t.sampleSearch(2, true);
t.sampleSearch(3, true);
t.sampleSearchReturn(2, true, null);
t.sampleSearchReturn(1, true, null);
t.sampleSearchReturn(0, true, null);
r.getElapsedTime().add(t);
r.getTemplating().setRenderer(d);
FastHit h = new FastHit("http://localhost/", .95);
h.setField("$a", "Hello, world.");
h.setField("b", "foo");
r.hits().add(h);
HitGroup g = new HitGroup("usual");
h = new FastHit("http://localhost/1", .90);
h.setField("c", "d");
g.add(h);
r.hits().add(g);
HitGroup gg = new HitGroup("type grouphit");
gg.types().add("grouphit");
gg.setField("e", "f");
r.hits().add(gg);
r.hits().addError(ErrorMessage.createInternalServerError("boom"));
ByteArrayOutputStream bs = new ByteArrayOutputStream();
ListenableFuture<Boolean> f = d.render(bs, r, null, null);
assertTrue(f.get());
String summary = Utf8.toString(bs.toByteArray());
assertEquals("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n" + "<result total-hit-count=\"0\"", summary.substring(0, 67));
assertTrue(summary.contains("<meta type=\"context\">"));
assertTrue(summary.contains("<error code=\"18\">Internal server error.</error>"));
assertTrue(summary.contains("<hit type=\"grouphit\" relevancy=\"1.0\">"));
assertTrue(summary.contains("<hit type=\"summary\" relevancy=\"0.95\">"));
assertEquals(2, occurrences("<error ", summary));
assertTrue(summary.length() > 1000);
}
Aggregations