List of usage examples for org.apache.solr.client.solrj SolrQuery setFields
public SolrQuery setFields(String... fields)
From source file:com.databasepreservation.visualization.utils.SolrUtils.java
public static InputStream findCSV(SolrClient index, String collection, Filter filter, Sorter sorter, Sublist sublist, List<String> fields) throws GenericException, RequestNotValidException { SolrQuery query = new SolrQuery(); query.setQuery(parseFilter(filter)); query.setSorts(parseSorter(sorter)); if (sublist != null) { query.setStart(sublist.getFirstElementIndex()); query.setRows(sublist.getMaximumElementCount()); }//from www . j a v a 2 s . c o m query.setFields(fields.toArray(new String[0])); LOGGER.debug("CSV export query object: " + query.toString()); LOGGER.debug("CSV export query: " + query.toQueryString()); try { QueryRequest queryRequest = new QueryRequest(query); queryRequest.setResponseParser(new InputStreamResponseParser("csv")); QueryResponse response = queryRequest.process(index, collection); Object stream = response.getResponse().get("stream"); if (stream instanceof InputStream) { return (InputStream) stream; } else { throw new GenericException( "Result was not an input stream. Its string representation was: " + stream.toString()); } } catch (SolrServerException | IOException e) { throw new GenericException("Could not query index", e); } }
From source file:com.gdn.x.ui.controller.CommonController.java
protected List searchByQuery(String queryParameter) throws MalformedURLException, SolrServerException { List actualResult = new ArrayList<String>(); try {//from w ww. jav a 2 s . co m // for solr 5 HttpSolrClient solr = new HttpSolrClient(solrUrlSearch); //for Solr 4 // HttpSolrServer solr = new HttpSolrServer(""); SolrQuery query = new SolrQuery(); query.setQuery(queryParameter); query.setFields("id"); query.setRequestHandler("/browse"); query.setStart(0); query.setRows(40); QueryResponse response = solr.query(query); SolrDocumentList results = response.getResults(); int j = 0; for (int i = 0; i < results.size(); ++i, j++) { actualResult.add(results.get(i).get("id")); } } catch (IOException ex) { Logger.getLogger(RunGoldenListController.class.getName()).log(Level.SEVERE, null, ex); } return actualResult; }
From source file:com.gdn.x.ui.controller.Evaluation.CommonControllerEvaluation.java
protected List searchByQueryEvaluation(String queryParameter) throws MalformedURLException, SolrServerException { List actualResult = new ArrayList<String>(); try {//w w w . j a va 2s . c o m // for solr 5 HttpSolrClient solr = new HttpSolrClient(solrUrlSearch); //for Solr 4 // HttpSolrServer solr = new HttpSolrServer("http://172.17.132.9:8983/solr/collection3"); SolrQuery query = new SolrQuery(); query.setQuery(queryParameter); query.setFields("id"); query.setRequestHandler("/browse"); query.setStart(0); query.setRows(24); QueryResponse response = solr.query(query); SolrDocumentList results = response.getResults(); int j = 0; for (int i = 0; i < results.size(); ++i, j++) { actualResult.add(results.get(i).get("id")); } // System.out.println(results.getNumFound()); // System.out.println(actualResult); } catch (IOException ex) { Logger.getLogger(RunGoldenListController.class.getName()).log(Level.SEVERE, null, ex); } return actualResult; }
From source file:com.gisgraphy.domain.repository.GenericGisDao.java
License:Open Source License
/** * Do a full text search for the given name. The search will be case, * iso-latin, comma-separated insensitive<br> * search for 'saint-Andr', 'saint-Andre', 'SaInT-andr', 'st-andr', etc * will return the same results. <u>note</u> : search for zipcode too * Polymorphism is not supported, e.g : if clazz=GisFeature : the results * will only be of that type and no other feature type (e.g : City that * extends gisFeature...etc) will be returned. The results will be sort by * relevance.// w w w .j a v a 2 s . co m * * @param name * The name to search for * @param includeAlternateNames * Wether we search in the alternatenames too * @param clazz * specify the features we want to search for, if null : no * restriction is apply * @return a list of gisFeatures of type of the class for the given text. * the max list size is {@link GenericGisDao#MAX_FULLTEXT_RESULTS}; * @see IGisFeatureDao#listAllFeaturesFromText(String, boolean) */ protected List<T> listFromText(String name, boolean includeAlternateNames, Class<T> clazz) { logger.debug("getFromText " + name); // Set up a simple query // Check for a null or empty string query if (name == null || name.length() == 0) { return new ArrayList<T>(); } SolrQuery query = new SolrQuery(); String namefield = FullTextFields.ALL_NAME.getValue(); if (!includeAlternateNames) { namefield = FullTextFields.NAME.getValue(); } String queryString = "(" + namefield + ":\"" + name + "\" OR " + FullTextFields.ZIPCODE.getValue() + ":\"" + name + "\")"; if (clazz != null) { queryString += " AND placetype:" + persistentClass.getSimpleName(); } query.setQuery(queryString); query.setQueryType(Constants.SolrQueryType.advanced.toString()); query.setFields(FullTextFields.FEATUREID.getValue()); query.setRows(MAX_FULLTEXT_RESULTS); QueryResponse results = null; try { results = solrClient.getServer().query(query); } catch (SolrServerException e) { throw new RuntimeException(e); } List<Long> ids = new ArrayList<Long>(); for (SolrDocument doc : results.getResults()) { ids.add((Long) doc.getFieldValue(FullTextFields.FEATUREID.getValue())); } // log List<T> gisFeatureList = this.listByFeatureIds(ids); if (logger.isDebugEnabled()) { logger.debug("search on " + name + " returns " + gisFeatureList.size()); for (GisFeature gisFeature : gisFeatureList) { logger.debug("search on " + name + " returns " + gisFeature.getName()); } } return gisFeatureList; }
From source file:com.gisgraphy.domain.repository.SolRSynchroniserTest.java
License:Open Source License
private QueryResponse searchInFulltextSearchEngine(String searchWords) { SolrQuery query = new SolrQuery(); String namefield = FullTextFields.ALL_NAME.getValue(); String queryString = "(" + namefield + ":\"" + searchWords + "\")"; query.setQuery(queryString);//w w w. j ava 2s . c o m query.setQueryType(Constants.SolrQueryType.advanced.toString()); query.setFields(FullTextFields.FEATUREID.getValue()); QueryResponse resultsAfterRemove = null; try { resultsAfterRemove = solrClient.getServer().query(query); } catch (SolrServerException e) { fail(); } return resultsAfterRemove; }
From source file:com.googlecode.solrgeonames.server.GeoServlet.java
License:Open Source License
/** * Prepare a 'suggest' query response// w w w . ja va 2 s . c o m * * @param request The incoming request * @param response The response object * @throws IOException If errors found */ private QueryResponse runQuery(String query, int start, int rows, String fields, String filter, String[] facets, int facetLimit) throws Exception { SolrQuery q = new SolrQuery(); q.setQuery(query); q.setStart(start); q.setRows(rows); q.setFields(fields); if (filter != null) { q.setFilterQueries(filter); } if (facets != null) { q.setFacet(true); q.setFacetLimit(facetLimit); q.addFacetField(facets); } else { q.setFacet(false); } return solrServer.query(q); }
From source file:com.ir.qa.QueryProcessor.SpellCorrector.java
License:Apache License
public String topSuggestion(String spelling) throws SolrServerException { HttpSolrServer solr = new HttpSolrServer("http://localhost:8983/solr"); SolrQuery query = new SolrQuery(); query.setFields("name"); query.setRows(50);/*from w ww.j a v a 2 s . co m*/ query.setQuery("wordNGram:" + spelling); //<co id="co.dym.field"/> QueryResponse response = solr.query(query); SolrDocumentList results = response.getResults(); Levenshtein levenshtein = new Levenshtein(); float maxDistance = 0; float distance = 0; String suggestion = null; List<String> nameList = new ArrayList<String>(); for (int i = 0; i < results.size(); i++) { // System.out.println(results.get(i)); SolrDocument doc = results.get(i); nameList = (List<String>) doc.getFieldValue("name"); for (String name_suggestions : nameList) { distance = levenshtein.getSimilarity(name_suggestions, spelling); System.out.println(name_suggestions); System.out.println(distance); if (distance > maxDistance) { maxDistance = distance; suggestion = name_suggestions; } } if (maxDistance > threshold) { //<co id="co.dym.threshold"/> return suggestion; } } return null; }
From source file:com.liferay.portal.search.solr.internal.SolrIndexSearcher.java
License:Open Source License
protected void addSelectedFields(SolrQuery solrQuery, QueryConfig queryConfig) { if (queryConfig.isAllFieldsSelected()) { return;/*w ww .ja v a 2s .c om*/ } Set<String> selectedFieldNames = SetUtil.fromArray(queryConfig.getSelectedFieldNames()); if (!selectedFieldNames.contains(Field.UID)) { selectedFieldNames.add(Field.UID); } solrQuery.setFields(selectedFieldNames.toArray(new String[selectedFieldNames.size()])); }
From source file:com.mycompany.solr_web_application.Simple_Query_Solr.java
public static void main(String[] args) { try {/*ww w .j a va2 s . c o m*/ String url = null; HttpSolrServer server = null; url = "http://localhost:8983/solr/wiki"; server = new HttpSolrServer(url); server.setMaxRetries(1); server.setConnectionTimeout(20000); server.setParser(new XMLResponseParser()); server.setSoTimeout(10000); server.setDefaultMaxConnectionsPerHost(100); server.setMaxTotalConnections(100); server.setFollowRedirects(false); server.setAllowCompression(true); SolrQuery query = new SolrQuery(); query.setQuery("india"); query.setQuery("india"); query.setFields(new String[] { "id", "name", "contents" }); query.setHighlight(true); //set other params as needed query.setParam("hl.fl", "name,contents"); query.setParam("hl.simple.pre", "<em>"); query.setParam("hl.simple.post", "</em>"); query.setParam("hl.fragsize", "100"); QueryResponse queryResponse = server.query(query); //System.out.println(queryResponse); //response = server.query(solrQuery); Iterator<SolrDocument> iter = queryResponse.getResults().iterator(); while (iter.hasNext()) { SolrDocument resultDoc = iter.next(); String id = (String) resultDoc.getFieldValue("id"); //System.out.println(id); //String id = (String) resultDoc.getFieldValue("id"); //id is the uniqueKey field if (queryResponse.getHighlighting().get(id) != null) { List<String> highlightSnippets = queryResponse.getHighlighting().get(id).get("name"); List<String> highlightSnippets1 = queryResponse.getHighlighting().get(id).get("contents"); // System.out.println("name "+highlightSnippets); // System.out.println("content "+highlightSnippets1); } } //String jsonString = JSONUtil.toJSON(queryResponse); //ResponseWrapper data = new Gson().fromJson(jsonString, ResponseWrapper.class); System.out.println("Highlighting data " + queryResponse.getHighlighting()); } catch (Exception e) { e.printStackTrace(); } }
From source file:com.mycompany.solr_web_application.Wildcard.java
public static void main(String[] args) { try {//from www. jav a 2 s . c o m String url = null; HttpSolrServer server = null; url = "http://localhost:8983/solr/wiki"; server = new HttpSolrServer(url); server.setMaxRetries(1); server.setConnectionTimeout(20000); server.setParser(new XMLResponseParser()); server.setSoTimeout(10000); server.setDefaultMaxConnectionsPerHost(100); server.setMaxTotalConnections(100); server.setFollowRedirects(false); server.setAllowCompression(true); SolrQuery query = new SolrQuery(); query.setQuery("indi*"); query.setRequestHandler("/wildcard"); query.setFields(new String[] { "id", "name", "contents" }); query.setHighlight(true); //set other params as needed QueryResponse queryResponse = server.query(query); System.out.println(queryResponse); //response = server.query(solrQuery); } catch (Exception e) { e.printStackTrace(); } }