Search in sources :

Example 16 with PacketWrapper

use of com.yahoo.prelude.fastsearch.PacketWrapper in project vespa by vespa-engine.

the class PacketWrapperTestCase method testPartialOverlap.

@Test
public void testPartialOverlap() {
    CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key")));
    PacketWrapper w = createResult(key, 0, 10, 100);
    QueryResultPacket q = createQueryResultPacket(10, 10, 100);
    w.addResultPacket(q);
    // all docs at once
    List<?> l = w.getDocuments(0, 20);
    assertNotNull(l);
    assertEquals(20, l.size());
    int n = 0;
    for (Iterator<?> i = l.iterator(); i.hasNext(); ++n) {
        DocumentInfo d = (DocumentInfo) i.next();
        assertEquals(DocsumDefinitionTestCase.createGlobalId(n), d.getGlobalId());
    }
    // too far out into the result set
    l = w.getDocuments(15, 10);
    assertNull(l);
    // only from first subdivision
    l = w.getDocuments(3, 2);
    assertNotNull(l);
    assertEquals(2, l.size());
    n = 3;
    for (Iterator<?> i = l.iterator(); i.hasNext(); ++n) {
        DocumentInfo d = (DocumentInfo) i.next();
        assertEquals(DocsumDefinitionTestCase.createGlobalId(n), d.getGlobalId());
    }
    // only from second subdivision
    l = w.getDocuments(15, 5);
    assertNotNull(l);
    assertEquals(5, l.size());
    n = 15;
    for (Iterator<?> i = l.iterator(); i.hasNext(); ++n) {
        DocumentInfo d = (DocumentInfo) i.next();
        assertEquals(DocsumDefinitionTestCase.createGlobalId(n), d.getGlobalId());
    }
    // overshoot by 1
    l = w.getDocuments(15, 6);
    assertNull(l);
    // mixed subset
    l = w.getDocuments(3, 12);
    assertNotNull(l);
    assertEquals(12, l.size());
    n = 3;
    for (Iterator<?> i = l.iterator(); i.hasNext(); ++n) {
        DocumentInfo d = (DocumentInfo) i.next();
        assertEquals(DocsumDefinitionTestCase.createGlobalId(n), d.getGlobalId());
    }
}
Also used : QueryResultPacket(com.yahoo.fs4.QueryResultPacket) Query(com.yahoo.search.Query) PacketWrapper(com.yahoo.prelude.fastsearch.PacketWrapper) CacheKey(com.yahoo.prelude.fastsearch.CacheKey) DocumentInfo(com.yahoo.fs4.DocumentInfo) Test(org.junit.Test)

Example 17 with PacketWrapper

use of com.yahoo.prelude.fastsearch.PacketWrapper in project vespa by vespa-engine.

the class PacketCacheTestCase method createCacheEntry.

/**
 * Creates a 64-byte packet in an array wrapped in a PacketWrapper
 */
private PacketWrapper createCacheEntry(CacheKey key) throws BufferTooSmallException {
    ByteBuffer data = ByteBuffer.allocate(length);
    data.put(queryResultPacketData);
    data.flip();
    BasicPacket[] content = new BasicPacket[] { PacketDecoder.extractPacket(data).packet };
    return new PacketWrapper(key, content);
}
Also used : BasicPacket(com.yahoo.fs4.BasicPacket) PacketWrapper(com.yahoo.prelude.fastsearch.PacketWrapper) ByteBuffer(java.nio.ByteBuffer)

Aggregations

PacketWrapper (com.yahoo.prelude.fastsearch.PacketWrapper)17 QueryResultPacket (com.yahoo.fs4.QueryResultPacket)16 CacheKey (com.yahoo.prelude.fastsearch.CacheKey)16 Query (com.yahoo.search.Query)16 Test (org.junit.Test)16 BasicPacket (com.yahoo.fs4.BasicPacket)1 DocumentInfo (com.yahoo.fs4.DocumentInfo)1 ByteBuffer (java.nio.ByteBuffer)1