use of com.yahoo.prelude.fastsearch.CacheKey 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());
}
}
use of com.yahoo.prelude.fastsearch.CacheKey in project vespa by vespa-engine.
the class CacheKeyTestCase method testSessionKeyIgnored.
@Test
public void testSessionKeyIgnored() {
Query a = new Query("/?query=abcd");
QueryPacket ap = QueryPacket.create(a);
Query b = new Query("/?query=abcd&ranking.queryCache=true");
QueryPacket bp = QueryPacket.create(b);
CacheKey ak = new CacheKey(ap);
CacheKey bk = new CacheKey(bp);
assertEquals(ak, bk);
assertEquals(ak.hashCode(), bk.hashCode());
assertFalse(ap.getQueryPacketData().equals(bp.getQueryPacketData()));
}
use of com.yahoo.prelude.fastsearch.CacheKey in project vespa by vespa-engine.
the class CacheKeyTestCase method testHitsOffsetEquality.
@Test
public void testHitsOffsetEquality() {
Query a = new Query("/?query=abcd");
QueryPacket p1 = QueryPacket.create(a);
a.setWindow(100, 1000);
QueryPacket p2 = QueryPacket.create(a);
CacheKey k1 = new CacheKey(p1);
CacheKey k2 = new CacheKey(p2);
assertEquals(k1, k2);
assertEquals(k1.hashCode(), k2.hashCode());
}
Aggregations