/** 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); } }
/** * Installs the specified search listener and starts the search. The search listener should handle * search results by calling the <code>addSearchResult(SearchResult)</code> method. */ @Override public void start(SearchListener searchListener) { if (searchListener == null) { throw new IllegalArgumentException("Search listener cannot be null"); } // Install search listener. this.searchListener = searchListener; search.addSearchListener(searchListener); // Start search. search.start(); }