Search in sources :

Example 86 with Hit

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"));
}
Also used : Hit(com.yahoo.search.result.Hit) Query(com.yahoo.search.Query) Result(com.yahoo.search.Result) Test(org.junit.Test)

Example 87 with Hit

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));
}
Also used : Hit(com.yahoo.search.result.Hit)

Example 88 with Hit

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());
}
Also used : ErrorHit(com.yahoo.search.result.ErrorHit) Hit(com.yahoo.search.result.Hit) Query(com.yahoo.search.Query) Result(com.yahoo.search.Result) Test(org.junit.Test)

Example 89 with Hit

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"));
}
Also used : FederationSearcher(com.yahoo.search.federation.FederationSearcher) Query(com.yahoo.search.Query) Result(com.yahoo.search.Result) StrictContractsConfig(com.yahoo.search.federation.StrictContractsConfig) ErrorHit(com.yahoo.search.result.ErrorHit) Hit(com.yahoo.search.result.Hit) Execution(com.yahoo.search.searchchain.Execution) ComponentRegistry(com.yahoo.component.provider.ComponentRegistry) TargetSelector(com.yahoo.search.federation.selection.TargetSelector) ComponentId(com.yahoo.component.ComponentId) FederationConfig(com.yahoo.search.federation.FederationConfig) Test(org.junit.Test)

Example 90 with Hit

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));
}
Also used : Hit(com.yahoo.search.result.Hit) Query(com.yahoo.search.Query) RootGroup(com.yahoo.search.grouping.result.RootGroup) Result(com.yahoo.search.Result) Test(org.junit.Test)

Aggregations

Hit (com.yahoo.search.result.Hit)127 Result (com.yahoo.search.Result)72 Query (com.yahoo.search.Query)52 FastHit (com.yahoo.prelude.fastsearch.FastHit)42 Test (org.junit.Test)41 Execution (com.yahoo.search.searchchain.Execution)25 HitGroup (com.yahoo.search.result.HitGroup)21 Searcher (com.yahoo.search.Searcher)17 JSONString (com.yahoo.prelude.hitfield.JSONString)13 GroupingListHit (com.yahoo.prelude.fastsearch.GroupingListHit)12 ErrorHit (com.yahoo.search.result.ErrorHit)10 Relevance (com.yahoo.search.result.Relevance)10 HashMap (java.util.HashMap)9 DocumentSourceSearcher (com.yahoo.prelude.searcher.DocumentSourceSearcher)8 Group (com.yahoo.search.grouping.result.Group)8 ComponentId (com.yahoo.component.ComponentId)7 Chain (com.yahoo.component.chain.Chain)7 FS4Hit (com.yahoo.searchlib.aggregation.FS4Hit)6 VdsHit (com.yahoo.searchlib.aggregation.VdsHit)6 GroupList (com.yahoo.search.grouping.result.GroupList)5