Search in sources :

Example 51 with Result

use of com.yahoo.search.Result in project vespa by vespa-engine.

the class TilingTestCase method testTiling2.

/**
 * This result contains center section and meta blocks.
 * <p>
 * Incidentally, this also tests using an old searcher in new search chains.
 */
public void testTiling2() throws IOException {
    Chain<Searcher> chain = new Chain<>("tiling", new TiledResultProducer2());
    // Query it
    Query query = new Query("/tiled?query=foo");
    Result result = callSearchAndSetRenderer(chain, query);
    assertRendered(IOUtils.readFile(new File("src/test/java/com/yahoo/prelude/templates/test/tilingexample2.xml")), result);
}
Also used : Chain(com.yahoo.component.chain.Chain) Query(com.yahoo.search.Query) Searcher(com.yahoo.search.Searcher) HTTPProviderSearcher(com.yahoo.search.federation.http.HTTPProviderSearcher) File(java.io.File) Result(com.yahoo.search.Result)

Example 52 with Result

use of com.yahoo.search.Result in project vespa by vespa-engine.

the class CachingSearcherTestCase method readyResult.

public void readyResult(String q) {
    Query query = new Query(q);
    Result r = new Result(query);
    for (int i = 0; i < 10; ++i) {
        FastHit h = new FastHit("http://127.0.0.1/" + i, 1.0 - ((double) i) / 10.0);
        r.hits().add(h);
    }
    hits.addResultSet(query, r);
}
Also used : FastHit(com.yahoo.prelude.fastsearch.FastHit) Query(com.yahoo.search.Query) Result(com.yahoo.search.Result)

Example 53 with Result

use of com.yahoo.search.Result in project vespa by vespa-engine.

the class CachingSearcherTestCase method testNoCacheWrite.

@Test
public final void testNoCacheWrite() {
    readyResult(QUERY_A_NOCACHEWRITE_TRUE);
    Execution e = new Execution(searchChain, Execution.Context.createContextStub());
    Result r = e.search(new Query(QUERY_A_NOCACHEWRITE_TRUE));
    assertEquals(10, r.hits().getConcreteSize());
    Query query = new Query(QUERY_A_NOCACHEWRITE_TRUE);
    Result expected = new Result(query);
    hits.addResultSet(query, expected);
    e = new Execution(searchChain, Execution.Context.createContextStub());
    r = e.search(new Query(QUERY_A_NOCACHEWRITE_TRUE));
    assertEquals(0, r.hits().getConcreteSize());
    assertEquals(2, hits.getQueryCount());
}
Also used : Execution(com.yahoo.search.searchchain.Execution) Query(com.yahoo.search.Query) Result(com.yahoo.search.Result) Test(org.junit.Test)

Example 54 with Result

use of com.yahoo.search.Result in project vespa by vespa-engine.

the class FieldCollapsingSearcherTestCase method testFieldCollapsingTwoPhaseSelectSummary.

// This test depends on DocumentSourceSearcher filling the hits
// with whatever data it got, ignoring actual summary arguments
// in the fill call, then saying the hits are filled for the
// ignored argument. Rewrite to contain different summaries if
// DocumentSourceSearcher gets extended.
@Test
public void testFieldCollapsingTwoPhaseSelectSummary() {
    // Set up
    Map<Searcher, Searcher> chained = new HashMap<>();
    FieldCollapsingSearcher collapse = new FieldCollapsingSearcher("other");
    DocumentSourceSearcher docsource = new DocumentSourceSearcher();
    chained.put(collapse, docsource);
    // Caveat: Collapse is set to false, because that's what the
    // collapser asks for
    Query q = new Query("?query=test_collapse&collapsefield=amid&summary=placeholder");
    // The searcher turns off collapsing further on in the chain
    q.properties().set("collapse", "0");
    Result r = new Result(q);
    r.hits().add(createHit("http://acme.org/a.html", 10, 0));
    r.hits().add(createHit("http://acme.org/b.html", 9, 0));
    r.hits().add(createHit("http://acme.org/c.html", 9, 1));
    r.hits().add(createHit("http://acme.org/d.html", 8, 1));
    r.hits().add(createHit("http://acme.org/e.html", 8, 2));
    r.hits().add(createHit("http://acme.org/f.html", 7, 2));
    r.hits().add(createHit("http://acme.org/g.html", 7, 3));
    r.hits().add(createHit("http://acme.org/h.html", 6, 3));
    r.setTotalHitCount(8);
    docsource.addResult(q, r);
    // Test basic collapsing on mid
    q = new Query("?query=test_collapse&collapsefield=amid&summary=placeholder");
    r = doSearch(collapse, q, 0, 10, chained);
    assertEquals(4, r.getHitCount());
    assertEquals(1, docsource.getQueryCount());
    assertTrue(r.isFilled("placeholder"));
    assertHit("http://acme.org/a.html", 10, 0, r.hits().get(0));
    assertHit("http://acme.org/c.html", 9, 1, r.hits().get(1));
    assertHit("http://acme.org/e.html", 8, 2, r.hits().get(2));
    assertHit("http://acme.org/g.html", 7, 3, r.hits().get(3));
    docsource.resetQueryCount();
    // Test basic collapsing on mid
    q = new Query("?collapse.summary=short&query=test_collapse&collapsefield=amid&summary=placeholder");
    r = doSearch(collapse, q, 0, 10, chained);
    assertEquals(4, r.getHitCount());
    assertEquals(1, docsource.getQueryCount());
    assertFalse(r.isFilled("placeholder"));
    assertTrue(r.isFilled("short"));
    assertHit("http://acme.org/a.html", 10, 0, r.hits().get(0));
    assertHit("http://acme.org/c.html", 9, 1, r.hits().get(1));
    assertHit("http://acme.org/e.html", 8, 2, r.hits().get(2));
    assertHit("http://acme.org/g.html", 7, 3, r.hits().get(3));
}
Also used : Query(com.yahoo.search.Query) HashMap(java.util.HashMap) Searcher(com.yahoo.search.Searcher) DocumentSourceSearcher(com.yahoo.search.searchchain.testutil.DocumentSourceSearcher) FieldCollapsingSearcher(com.yahoo.prelude.searcher.FieldCollapsingSearcher) DocumentSourceSearcher(com.yahoo.search.searchchain.testutil.DocumentSourceSearcher) FieldCollapsingSearcher(com.yahoo.prelude.searcher.FieldCollapsingSearcher) Result(com.yahoo.search.Result) Test(org.junit.Test)

Example 55 with Result

use of com.yahoo.search.Result in project vespa by vespa-engine.

the class FieldCollapsingSearcherTestCase method testFieldCollapsingTwoPhase.

@Test
public void testFieldCollapsingTwoPhase() {
    // Set up
    Map<Searcher, Searcher> chained = new HashMap<>();
    FieldCollapsingSearcher collapse = new FieldCollapsingSearcher("other");
    DocumentSourceSearcher docsource = new DocumentSourceSearcher();
    chained.put(collapse, docsource);
    // Caveat: Collapse is set to false, because that's what the
    // collapser asks for
    Query q = new Query("?query=test_collapse&collapsefield=amid");
    // The searcher turns off collapsing further on in the chain
    q.properties().set("collapse", "0");
    Result r = new Result(q);
    r.hits().add(createHit("http://acme.org/a.html", 10, 0));
    r.hits().add(createHit("http://acme.org/b.html", 9, 0));
    r.hits().add(createHit("http://acme.org/c.html", 9, 1));
    r.hits().add(createHit("http://acme.org/d.html", 8, 1));
    r.hits().add(createHit("http://acme.org/e.html", 8, 2));
    r.hits().add(createHit("http://acme.org/f.html", 7, 2));
    r.hits().add(createHit("http://acme.org/g.html", 7, 3));
    r.hits().add(createHit("http://acme.org/h.html", 6, 3));
    r.setTotalHitCount(8);
    docsource.addResult(q, r);
    // Test basic collapsing on mid
    q = new Query("?query=test_collapse&collapsefield=amid");
    r = doSearch(collapse, q, 0, 10, chained);
    assertEquals(4, r.getHitCount());
    assertEquals(1, docsource.getQueryCount());
    assertHit("http://acme.org/a.html", 10, 0, r.hits().get(0));
    assertHit("http://acme.org/c.html", 9, 1, r.hits().get(1));
    assertHit("http://acme.org/e.html", 8, 2, r.hits().get(2));
    assertHit("http://acme.org/g.html", 7, 3, r.hits().get(3));
}
Also used : Query(com.yahoo.search.Query) HashMap(java.util.HashMap) Searcher(com.yahoo.search.Searcher) DocumentSourceSearcher(com.yahoo.search.searchchain.testutil.DocumentSourceSearcher) FieldCollapsingSearcher(com.yahoo.prelude.searcher.FieldCollapsingSearcher) DocumentSourceSearcher(com.yahoo.search.searchchain.testutil.DocumentSourceSearcher) FieldCollapsingSearcher(com.yahoo.prelude.searcher.FieldCollapsingSearcher) Result(com.yahoo.search.Result) Test(org.junit.Test)

Aggregations

Result (com.yahoo.search.Result)398 Test (org.junit.Test)231 Query (com.yahoo.search.Query)229 Execution (com.yahoo.search.searchchain.Execution)127 Searcher (com.yahoo.search.Searcher)94 Hit (com.yahoo.search.result.Hit)72 Chain (com.yahoo.component.chain.Chain)48 FastHit (com.yahoo.prelude.fastsearch.FastHit)36 HitGroup (com.yahoo.search.result.HitGroup)29 JSONString (com.yahoo.prelude.hitfield.JSONString)26 HashMap (java.util.HashMap)21 FeedContext (com.yahoo.feedapi.FeedContext)19 MessagePropertyProcessor (com.yahoo.feedapi.MessagePropertyProcessor)19 NullFeedMetric (com.yahoo.feedhandler.NullFeedMetric)19 ClusterList (com.yahoo.vespaclient.ClusterList)19 ErrorMessage (com.yahoo.search.result.ErrorMessage)17 Choice (com.yahoo.search.pagetemplates.model.Choice)16 Organizer (com.yahoo.search.pagetemplates.engine.Organizer)15 DocumentSourceSearcher (com.yahoo.search.searchchain.testutil.DocumentSourceSearcher)15 DeterministicResolver (com.yahoo.search.pagetemplates.engine.resolvers.DeterministicResolver)14