use of com.yahoo.search.result.Hit in project vespa by vespa-engine.
the class HitCountTestCase method require_that_logging_hit_is_populated_with_result_count.
@Test
public void require_that_logging_hit_is_populated_with_result_count() {
final long chain1TotalHitCount = 9;
final long chain1DeepHitCount = 14;
final long chain2TotalHitCount = 11;
final long chain2DeepHitCount = 15;
FederationTester tester = new FederationTester();
tester.addSearchChain("chain1", new SetHitCountsSearcher(chain1TotalHitCount, chain1DeepHitCount));
tester.addSearchChain("chain2", new SetHitCountsSearcher(chain2TotalHitCount, chain2DeepHitCount), new AddHitsWithRelevanceSearcher("chain1", 2));
Query query = new Query();
query.setOffset(2);
query.setHits(7);
Result result = tester.search();
List<Hit> metaHits = getFirstMetaHitInEachGroup(result);
Hit first = metaHits.get(0);
assertEquals(chain1TotalHitCount, first.getField("count_total"));
assertEquals(chain1TotalHitCount, first.getField("count_total"));
assertEquals(1, first.getField("count_first"));
assertEquals(0, first.getField("count_last"));
Hit second = metaHits.get(1);
assertEquals(chain2TotalHitCount, second.getField("count_total"));
assertEquals(chain2TotalHitCount, second.getField("count_total"));
assertEquals(1, second.getField("count_first"));
assertEquals(AddHitsWithRelevanceSearcher.numHitsAdded, second.getField("count_last"));
}
use of com.yahoo.search.result.Hit in project vespa by vespa-engine.
the class ResultTestCase method resultInit.
private void resultInit(Result result) {
result.hits().add(new Hit("test:hit1", 80));
result.hits().add(new Hit("test:hit2", 90));
result.hits().add(new Hit("test:hit3", 70));
result.hits().add(new Hit("test:hit4", 40));
result.hits().add(new Hit("test:hit5", 50));
result.hits().add(new Hit("test:hit6", 20));
result.hits().add(new Hit("test:hit7", 20));
result.hits().add(new Hit("test:hit8", 55));
result.hits().add(new Hit("test:hit9", 75));
}
use of com.yahoo.search.result.Hit in project vespa by vespa-engine.
the class FederationSearcherTest method require_that_hits_that_time_out_in_fill_are_removed.
@Test
public void require_that_hits_that_time_out_in_fill_are_removed() {
FederationTester tester = new FederationTester();
tester.addSearchChain("chain1", new AddHitSearcher());
tester.addSearchChain("chain2", new TimeoutInFillSearcher());
Query query = new Query();
Result result = tester.search(query);
tester.fill(result);
assertEquals(1, result.hits().getConcreteSize());
for (Iterator<Hit> i = result.hits().deepIterator(); i.hasNext(); ) assertFilled(i.next());
assertEquals("Timed out", result.hits().getError().getMessage());
}
use of com.yahoo.search.result.Hit in project vespa by vespa-engine.
the class FederationSearcherTest method target_selectors_can_have_multiple_targets.
@Test
public void target_selectors_can_have_multiple_targets() {
ComponentId targetSelectorId = ComponentId.fromString("TestMultipleTargetSelector");
ComponentRegistry<TargetSelector> targetSelectors = new ComponentRegistry<>();
targetSelectors.register(targetSelectorId, new TestMultipleTargetSelector());
FederationSearcher searcher = new FederationSearcher(new FederationConfig(new FederationConfig.Builder().targetSelector(targetSelectorId.toString())), new StrictContractsConfig(new StrictContractsConfig.Builder()), targetSelectors);
Result result = new Execution(searcher, Context.createContextStub()).search(new Query());
Iterator<Hit> hitsIterator = result.hits().deepIterator();
Hit hit1 = hitsIterator.next();
Hit hit2 = hitsIterator.next();
assertThat(hit1.getSource(), is("chain1"));
assertThat(hit2.getSource(), is("chain2"));
assertThat((String) hit1.getField("data"), is("modifyTargetQuery:custom-data:1"));
assertThat((String) hit2.getField("data"), is("modifyTargetQuery:custom-data:2"));
}
use of com.yahoo.search.result.Hit in project vespa by vespa-engine.
the class GroupingRequestTestCase method requireThatRemovedResultIsNull.
@Test
public void requireThatRemovedResultIsNull() {
Query query = new Query();
GroupingRequest req = GroupingRequest.newInstance(query);
Result res = new Result(query);
res.hits().add(new Hit("foo"));
RootGroup bar = newRootGroup(0);
req.setResultGroup(bar);
res.hits().add(new Hit("baz"));
assertNull(req.getResultGroup(res));
}
Aggregations