use of com.yahoo.search.handler.SearchHandler in project vespa by vespa-engine.
the class SearcherUtils method getSearchHandler.
// Return value is never null
static SearchHandler getSearchHandler() {
SearchHandler searchHandler = (SearchHandler) Container.get().getRequestHandlerRegistry().getComponent("com.yahoo.search.handler.SearchHandler");
ensureNotNull("The standard search handler is not available.", searchHandler);
return searchHandler;
}
use of com.yahoo.search.handler.SearchHandler in project vespa by vespa-engine.
the class SearchHandlerTestCase method testFailedReconfiguration.
@Test
// TODO: Must be done at the ConfiguredApplication level, not handlers configurer? Also, this must be rewritten as the above
@Ignore
public synchronized void testFailedReconfiguration() throws Exception {
assertXmlResult(driver);
// attempt reconfiguration
IOUtils.copyDirectory(new File(testDir, "handlersInvalid"), new File(tempDir), 1);
generateComponentsConfigForActive();
configurer.reloadConfig();
SearchHandler newSearchHandler = fetchSearchHandler(configurer);
RequestHandler newMockHandler = configurer.getRequestHandlerRegistry().getComponent("com.yahoo.search.handler.test.MockHandler");
assertTrue("Reconfiguration failed: Kept the existing instance of the search handler", searchHandler == newSearchHandler);
assertNull("Reconfiguration failed: No mock handler", newMockHandler);
try (RequestHandlerTestDriver newDriver = new RequestHandlerTestDriver(searchHandler)) {
assertXmlResult(newDriver);
}
}
use of com.yahoo.search.handler.SearchHandler in project vespa by vespa-engine.
the class SearchHandlerTestCase method startUp.
@Before
public void startUp() throws IOException {
File cfgDir = tempfolder.newFolder("SearchHandlerTestCase");
tempDir = cfgDir.getAbsolutePath();
configId = "dir:" + tempDir;
// make configs active
IOUtils.copyDirectory(new File(testDir), cfgDir, 1);
generateComponentsConfigForActive();
configurer = new HandlersConfigurerTestWrapper(new Container(), configId);
searchHandler = (SearchHandler) configurer.getRequestHandlerRegistry().getComponent(SearchHandler.class.getName());
driver = new RequestHandlerTestDriver(searchHandler);
}
use of com.yahoo.search.handler.SearchHandler in project vespa by vespa-engine.
the class SearchHandlerTestCase method driverWithConfig.
private RequestHandlerTestDriver driverWithConfig(String configDirectory) throws Exception {
IOUtils.copyDirectory(new File(testDir, configDirectory), new File(tempDir), 1);
generateComponentsConfigForActive();
configurer.reloadConfig();
SearchHandler newSearchHandler = fetchSearchHandler(configurer);
assertTrue("Should have a new instance of the search handler", searchHandler != newSearchHandler);
return new RequestHandlerTestDriver(newSearchHandler);
}
use of com.yahoo.search.handler.SearchHandler in project vespa by vespa-engine.
the class QueryProfileIntegrationTestCase method testUntyped.
public void testUntyped() {
String configId = "dir:src/test/java/com/yahoo/search/query/profile/config/test/untyped";
System.setProperty("config.id", configId);
Container container = new Container();
HandlersConfigurerTestWrapper configurer = new HandlersConfigurerTestWrapper(container, configId);
SearchHandler searchHandler = (SearchHandler) configurer.getRequestHandlerRegistry().getComponent(SearchHandler.class.getName());
// Should get "default" query profile containing the "test" search chain containing the "test" searcher
HttpRequest request = HttpRequest.createTestRequest("search", Method.GET);
// Cast to access content directly
HttpSearchResponse response = (HttpSearchResponse) searchHandler.handle(request);
assertNotNull(response.getResult().hits().get("from:test"));
// Should get the "test' query profile containing the "default" search chain containing the "default" searcher
request = HttpRequest.createTestRequest("search?queryProfile=test", Method.GET);
// Cast to access content directly
response = (HttpSearchResponse) searchHandler.handle(request);
assertNotNull(response.getResult().hits().get("from:default"));
// Should get "default" query profile, but override the search chain to default
request = HttpRequest.createTestRequest("search?searchChain=default", Method.GET);
// Cast to access content directly
response = (HttpSearchResponse) searchHandler.handle(request);
assertNotNull(response.getResult().hits().get("from:default"));
// Tests a profile setting hits and offset
request = HttpRequest.createTestRequest("search?queryProfile=hitsoffset", Method.GET);
// Cast to access content directly
response = (HttpSearchResponse) searchHandler.handle(request);
assertEquals(20, response.getQuery().getHits());
assertEquals(80, response.getQuery().getOffset());
// Tests a non-resolved profile request
request = HttpRequest.createTestRequest("search?queryProfile=none", Method.GET);
// Cast to access content directly
response = (HttpSearchResponse) searchHandler.handle(request);
assertNotNull("Got an error", response.getResult().hits().getError());
assertEquals("Could not resolve query profile 'none'", response.getResult().hits().getError().getDetailedMessage());
// Tests that properties in objects owned by query is handled correctly
request = HttpRequest.createTestRequest("search?query=word&queryProfile=test", Method.GET);
// Cast to access content directly
response = (HttpSearchResponse) searchHandler.handle(request);
assertEquals("index", response.getQuery().getModel().getDefaultIndex());
assertEquals("index:word", response.getQuery().getModel().getQueryTree().toString());
configurer.shutdown();
}
Aggregations