use of com.yahoo.search.Query in project vespa by vespa-engine.
the class PageWithBlendingTestCase method testExecution.
@Test
public void testExecution() {
// Create the page template
Choice page = Choice.createSingleton(importPage("PageWithBlending.xml"));
// Create a federated result
Query query = new Query();
Result result = new Result(query);
result.hits().add(createHits("news", 2));
result.hits().add(createHits("htmlSource", 1));
// Resolve (noop here)
Resolver resolver = new DeterministicResolver();
Resolution resolution = resolver.resolve(page, query, result);
// Execute
Organizer organizer = new Organizer();
organizer.organize(page, resolution, result);
// Check rendering
assertRendered(result, "PageWithBlendingResult.xml", new PageTemplateSet());
}
use of com.yahoo.search.Query in project vespa by vespa-engine.
the class SourceChoiceTestCase method testExecution.
@Test
public void testExecution() {
// Create the page template
Choice page = Choice.createSingleton(importPage("SourceChoice.xml"));
// Create a federated result
Query query = new Query();
Result result = new Result(query);
result.hits().add(createHits("web", 3));
result.hits().add(createHits("news", 3));
result.hits().add(createHits("blog", 3));
// Resolve (noop here)
Resolver resolver = new DeterministicResolver();
Resolution resolution = resolver.resolve(page, query, result);
// Execute
Organizer organizer = new Organizer();
organizer.organize(page, resolution, result);
// Check rendering
assertRendered(result, "SourceChoiceResult.xml", new PageTemplateSet(), true);
}
use of com.yahoo.search.Query in project vespa by vespa-engine.
the class PageTemplateSearcherTestCase method testSearcher.
public void testSearcher() {
PageTemplateSearcher s = new PageTemplateSearcher(createPageTemplateRegistry(), new FirstChoiceResolver());
Chain<Searcher> chain = new Chain<>(s, new MockFederator());
{
// No template specified, should use default
Result result = new Execution(chain, Execution.Context.createContextStub()).search(new Query("?query=foo&page.resolver=native.deterministic"));
assertSources("source1 source2", result);
}
{
Result result = new Execution(chain, Execution.Context.createContextStub()).search(new Query("?query=foo&page.id=oneSource&page.resolver=native.deterministic"));
assertSources("source1", result);
}
{
Result result = new Execution(chain, Execution.Context.createContextStub()).search(new Query("?query=foo&page.id=twoSources&model.sources=source1&page.resolver=native.deterministic"));
assertSources("source1", result);
}
{
Query query = new Query("?query=foo&page.resolver=native.deterministic");
addIntentModelSpecifyingSource3(query);
Result result = new Execution(chain, Execution.Context.createContextStub()).search(query);
assertSources("source1 source2", result);
}
{
Query query = new Query("?query=foo&page.id=twoSourcesAndAny&page.resolver=native.deterministic");
addIntentModelSpecifyingSource3(query);
Result result = new Execution(chain, Execution.Context.createContextStub()).search(query);
assertSources("source1 source2 source3", result);
}
{
Query query = new Query("?query=foo&page.id=anySource&page.resolver=native.deterministic");
addIntentModelSpecifyingSource3(query);
Result result = new Execution(chain, Execution.Context.createContextStub()).search(query);
assertSources("source3", result);
}
{
Query query = new Query("?query=foo&page.id=anySource&page.resolver=native.deterministic");
Result result = new Execution(chain, Execution.Context.createContextStub()).search(query);
assertTrue(query.getModel().getSources().isEmpty());
assertNotNull(result.hits().get("source1"));
assertNotNull(result.hits().get("source2"));
assertNotNull(result.hits().get("source3"));
}
{
Query query = new Query("?query=foo&page.id=choiceOfSources&page.resolver=native.deterministic");
Result result = new Execution(chain, Execution.Context.createContextStub()).search(query);
assertSources("source1 source2", "source2", result);
}
{
Query query = new Query("?query=foo&page.id=choiceOfSources&page.resolver=test.firstChoice");
Result result = new Execution(chain, Execution.Context.createContextStub()).search(query);
assertSources("source1 source2", "source1", result);
}
{
// Specifying two templates, should pick the last
Query query = new Query("?query=foo&page.id=threeSources+oneSource&page.resolver=native.deterministic");
Result result = new Execution(chain, Execution.Context.createContextStub()).search(query);
assertSources("source1 source2 source3", "source1", result);
}
{
// Specifying two templates as a list, should override the page.id setting
Query query = new Query("?query=foo&page.id=anySource&page.resolver=native.deterministic");
query.properties().set("page.idList", Arrays.asList("oneSource", "threeSources"));
Result result = new Execution(chain, Execution.Context.createContextStub()).search(query);
assertSources("source1 source2 source3", "source1 source2 source3", result);
}
{
try {
Query query = new Query("?query=foo&page.id=oneSource+choiceOfSources&page.resolver=noneSuch");
new Execution(chain, Execution.Context.createContextStub()).search(query);
fail("Expected exception");
} catch (IllegalArgumentException e) {
assertEquals("No page template resolver 'noneSuch'", e.getMessage());
}
}
}
use of com.yahoo.search.Query in project vespa by vespa-engine.
the class PageTestCase method testExecution.
@Test
public void testExecution() {
// Create the page template
Choice page = Choice.createSingleton(importPage("Page.xml"));
// Create a federated result
Query query = new Query();
Result result = new Result(query);
result.hits().add(createHits("news", 2));
result.hits().add(createHits("htmlSource", 1));
// Resolve (noop here)
Resolver resolver = new DeterministicResolver();
Resolution resolution = resolver.resolve(page, query, result);
// Execute
Organizer organizer = new Organizer();
organizer.organize(page, resolution, result);
// Check rendering
assertRendered(result, "PageResult.xml", new PageTemplateSet());
}
use of com.yahoo.search.Query in project vespa by vespa-engine.
the class PageWithSourceRendererTestCase method testExecution.
@Test
public void testExecution() {
// Create the page template
Choice page = Choice.createSingleton(importPage("PageWithSourceRenderer.xml"));
// Create a federated result
Query query = new Query();
Result result = new Result(query);
result.hits().add(createHits("news", 2));
result.hits().add(createHits("htmlSource", 1));
// Resolve
Resolver resolver = new DeterministicResolver();
Resolution resolution = resolver.resolve(page, query, result);
// Execute
Organizer organizer = new Organizer();
organizer.organize(page, resolution, result);
// Check rendering
assertRendered(result, "PageWithSourceRendererResult.xml", new PageTemplateSet());
}
Aggregations