Search in sources :

Example 21 with Query

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

the class FastSearcherTestCase method testSinglePassGroupingIsNotForcedWithSingleNodeGroups.

@Test
public void testSinglePassGroupingIsNotForcedWithSingleNodeGroups() {
    MockDispatcher dispatcher = new MockDispatcher(ImmutableList.of(new SearchCluster.Node("host0", 123, 0), new SearchCluster.Node("host1", 123, 0)));
    FastSearcher fastSearcher = new FastSearcher(new MockBackend(), new FS4ResourcePool(1), dispatcher, new SummaryParameters(null), new ClusterParams("testhittype"), new CacheParams(100, 1e64), documentdbInfoConfig);
    Query q = new Query("?query=foo");
    GroupingRequest request1 = GroupingRequest.newInstance(q);
    request1.setRootOperation(new AllOperation());
    GroupingRequest request2 = GroupingRequest.newInstance(q);
    AllOperation all = new AllOperation();
    all.addChild(new EachOperation());
    all.addChild(new EachOperation());
    request2.setRootOperation(all);
    assertForceSinglePassIs(false, q);
    fastSearcher.search(q, new Execution(Execution.Context.createContextStub()));
    assertForceSinglePassIs(false, q);
}
Also used : Query(com.yahoo.search.Query) TraceNode(com.yahoo.yolean.trace.TraceNode) EachOperation(com.yahoo.search.grouping.request.EachOperation) Execution(com.yahoo.search.searchchain.Execution) MockBackend(com.yahoo.prelude.fastsearch.test.fs4mock.MockBackend) GroupingRequest(com.yahoo.search.grouping.GroupingRequest) AllOperation(com.yahoo.search.grouping.request.AllOperation) Test(org.junit.Test)

Example 22 with Query

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

the class FastSearcherTestCase method getTraceString.

private String getTraceString(String summary) {
    FastSearcher fastSearcher = createFastSearcher();
    Query query = new Query("?query=ignored");
    query.getPresentation().setSummary(summary);
    query.setTraceLevel(2);
    Result result = doSearch(fastSearcher, query, 0, 10);
    doFill(fastSearcher, result);
    Trace trace = query.getContext(false).getTrace();
    final AtomicReference<String> fillTraceString = new AtomicReference<>();
    trace.traceNode().accept(new TraceVisitor() {

        @Override
        public void visit(TraceNode traceNode) {
            if (traceNode.payload() instanceof String && traceNode.payload().toString().contains("fill to dispatch"))
                fillTraceString.set((String) traceNode.payload());
        }
    });
    return fillTraceString.get();
}
Also used : Trace(com.yahoo.processing.execution.Execution.Trace) Query(com.yahoo.search.Query) TraceVisitor(com.yahoo.yolean.trace.TraceVisitor) AtomicReference(java.util.concurrent.atomic.AtomicReference) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) TraceNode(com.yahoo.yolean.trace.TraceNode) Result(com.yahoo.search.Result)

Example 23 with Query

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

the class PacketWrapperTestCase method testPacketTrimming10.

@Test
public void testPacketTrimming10() {
    CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key")));
    PacketWrapper w = createResult(key, 0, 10, 100);
    QueryResultPacket q = createQueryResultPacket(0, 11, 100);
    w.addResultPacket(q);
    q = createQueryResultPacket(11, 9, 100);
    w.addResultPacket(q);
    q = createQueryResultPacket(20, 10, 100);
    w.addResultPacket(q);
    assertEquals(3, w.getResultPackets().size());
    List<?> l = w.getResultPackets();
    assertEquals(0, ((QueryResultPacket) l.get(0)).getOffset());
    assertEquals(11, ((QueryResultPacket) l.get(0)).getDocumentCount());
    assertEquals(11, ((QueryResultPacket) l.get(1)).getOffset());
    assertEquals(20, ((QueryResultPacket) l.get(2)).getOffset());
}
Also used : QueryResultPacket(com.yahoo.fs4.QueryResultPacket) Query(com.yahoo.search.Query) PacketWrapper(com.yahoo.prelude.fastsearch.PacketWrapper) CacheKey(com.yahoo.prelude.fastsearch.CacheKey) Test(org.junit.Test)

Example 24 with Query

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

the class PacketWrapperTestCase method testPacketTrimming11.

@Test
public void testPacketTrimming11() {
    CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key")));
    PacketWrapper w = createResult(key, 0, 10, 100);
    QueryResultPacket q = createQueryResultPacket(1, 10, 100);
    w.addResultPacket(q);
    q = createQueryResultPacket(9, 10, 100);
    w.addResultPacket(q);
    q = createQueryResultPacket(18, 10, 100);
    w.addResultPacket(q);
    q = createQueryResultPacket(27, 10, 100);
    w.addResultPacket(q);
    q = createQueryResultPacket(36, 10, 100);
    w.addResultPacket(q);
    q = createQueryResultPacket(45, 10, 100);
    w.addResultPacket(q);
    q = createQueryResultPacket(54, 10, 100);
    w.addResultPacket(q);
    q = createQueryResultPacket(63, 10, 100);
    w.addResultPacket(q);
    assertEquals(8, w.getResultPackets().size());
    q = createQueryResultPacket(10, 90, 100);
    w.addResultPacket(q);
    assertEquals(2, w.getResultPackets().size());
}
Also used : QueryResultPacket(com.yahoo.fs4.QueryResultPacket) Query(com.yahoo.search.Query) PacketWrapper(com.yahoo.prelude.fastsearch.PacketWrapper) CacheKey(com.yahoo.prelude.fastsearch.CacheKey) Test(org.junit.Test)

Example 25 with Query

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

the class PacketWrapperTestCase method testPacketTrimming4.

@Test
public void testPacketTrimming4() {
    CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key")));
    PacketWrapper w = createResult(key, 0, 10, 100);
    QueryResultPacket q = createQueryResultPacket(5, 10, 100);
    w.addResultPacket(q);
    q = createQueryResultPacket(10, 10, 100);
    w.addResultPacket(q);
    q = createQueryResultPacket(15, 10, 100);
    w.addResultPacket(q);
    q = createQueryResultPacket(20, 10, 100);
    w.addResultPacket(q);
    assertEquals(3, w.getResultPackets().size());
    List<?> l = w.getResultPackets();
    assertEquals(0, ((QueryResultPacket) l.get(0)).getOffset());
    assertEquals(10, ((QueryResultPacket) l.get(1)).getOffset());
    assertEquals(20, ((QueryResultPacket) l.get(2)).getOffset());
}
Also used : QueryResultPacket(com.yahoo.fs4.QueryResultPacket) Query(com.yahoo.search.Query) PacketWrapper(com.yahoo.prelude.fastsearch.PacketWrapper) CacheKey(com.yahoo.prelude.fastsearch.CacheKey) Test(org.junit.Test)

Aggregations

Query (com.yahoo.search.Query)689 Test (org.junit.Test)415 Result (com.yahoo.search.Result)229 Execution (com.yahoo.search.searchchain.Execution)184 Searcher (com.yahoo.search.Searcher)82 QueryProfile (com.yahoo.search.query.profile.QueryProfile)63 Hit (com.yahoo.search.result.Hit)52 Chain (com.yahoo.component.chain.Chain)47 IndexFacts (com.yahoo.prelude.IndexFacts)44 CompiledQueryProfileRegistry (com.yahoo.search.query.profile.compiled.CompiledQueryProfileRegistry)37 AndItem (com.yahoo.prelude.query.AndItem)33 WordItem (com.yahoo.prelude.query.WordItem)33 FastHit (com.yahoo.prelude.fastsearch.FastHit)31 CompiledQueryProfile (com.yahoo.search.query.profile.compiled.CompiledQueryProfile)27 HitGroup (com.yahoo.search.result.HitGroup)24 Item (com.yahoo.prelude.query.Item)21 HashMap (java.util.HashMap)20 CacheKey (com.yahoo.prelude.fastsearch.CacheKey)18 GroupingRequest (com.yahoo.search.grouping.GroupingRequest)18 ArrayList (java.util.ArrayList)18