/** Starts a new search using the specified uri target and query parameters. */ private void doStart(String uriTarget, Map<String, String> queryParams, HttpResponse response) throws IOException { // Get parameters to start search. String searchQuery = queryParams.get("q"); // Create search. SearchDetails searchDetails = RestSearchDetails.createKeywordSearch(searchQuery); Search search = searchFactory.createSearch(searchDetails); // Add search to search manager. The search is monitored so it will // be cancelled if we stop polling for its results. SearchResultList searchList = searchManager.addMonitoredSearch(search, searchDetails); // Start search. search.start(); try { // Return search metadata. JSONObject jsonObj = RestUtils.createSearchJson(searchList); HttpEntity entity = RestUtils.createStringEntity(jsonObj.toString()); response.setEntity(entity); response.setStatusCode(HttpStatus.SC_OK); } catch (JSONException ex) { throw new IOException(ex); } }