List of usage examples for org.apache.solr.client.solrj SolrQuery SolrQuery
public SolrQuery()
From source file:com.mycompany.solr_web_application.Simple_Query_Solr.java
public static void main(String[] args) { try {/*ww w. j a va2s . co 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 w w w .j a va2 s. c om*/ 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(); } }
From source file:com.ngdata.hbaseindexer.mr.TestUtils.java
License:Apache License
public static void validateSolrServerDocumentCount(File solrHomeDir, FileSystem fs, Path outDir, int expectedDocs, int expectedShards) throws IOException, SolrServerException { long actualDocs = 0; int actualShards = 0; for (FileStatus dir : fs.listStatus(outDir)) { // for each shard if (dir.getPath().getName().startsWith("part") && dir.isDirectory()) { actualShards++;/* w w w.j a v a 2s .co m*/ EmbeddedSolrServer solr = createEmbeddedSolrServer(solrHomeDir, fs, dir.getPath()); try { SolrQuery query = new SolrQuery(); query.setQuery("*:*"); QueryResponse resp = solr.query(query); long numDocs = resp.getResults().getNumFound(); actualDocs += numDocs; } finally { solr.close(); } } } assertEquals(expectedShards, actualShards); assertEquals(expectedDocs, actualDocs); }
From source file:com.odoko.solrcli.actions.CrawlPostAction.java
License:Apache License
@Override public void go() { SolrServer server = new HttpSolrServer("http://localhost:8983/solr"); try {/*from www. j av a2 s. com*/ SolrQuery query = new SolrQuery(); query.setQuery(querystring); query.setFields(StringUtils.join(fieldlist, ",")); for (String name : params.keySet()) { query.add(name, params.get(name)); } QueryResponse response = server.query(query); if (!omitHeader) { printHeader(query, response); } query.add("fl", "id"); for (SolrDocument doc : response.getResults()) { List<String>values = new ArrayList<String>(); for (String fieldname : parseFieldList(query.get("fl"))) { values.add(toString(doc.getFieldValue(fieldname))); } System.out.println(StringUtils.join(values, "\t")); } } catch (SolrServerException e) { throw new RuntimeException(e); } }
From source file:com.plugtree.solrmeter.model.service.impl.QueryServiceSolrJImpl.java
License:Apache License
protected SolrQuery createQuery(String q, String fq, String qt, boolean highlight, String facetFields, String sort, String sortOrder, Integer rows, Integer start, String otherParams) throws QueryException { SolrQuery query = new SolrQuery(); if (q != null) { query.setQuery(q);//from ww w .j av a 2s . c om } if (fq != null) { List<String> filterQueries = this.getFilterQueries(fq); for (String filterQuery : filterQueries) { query.addFilterQuery(filterQuery); } } if (qt != null) { query.setQueryType(qt); } query.setHighlight(highlight); if (facetFields == null || "".equals(facetFields)) { query.setFacet(false); } else { query.setFacet(true); List<String> facets = this.getFacets(facetFields); for (String facet : facets) { query.addFacetField(facet); } } if (sort != null && !"".equals(sort)) { query.setSortField(sort, ORDER.valueOf(sortOrder)); } if (rows != null && rows < 0) { throw new QueryException("Rows can't be less than 0"); } else if (rows != null) { query.setRows(rows); } if (start != null && start < 0) { throw new QueryException("Rows can't be less than 0"); } else if (start != null) { query.setStart(start); } if (otherParams != null) { List<String> params = this.getOtherParams(otherParams); for (String param : params) { query.add(getParamName(param), getParamValue(param)); } } return query; }
From source file:com.riemersebastian.solrduplicate.SolrDuplicateTest.java
private void executeQueryAndShowResults() { LOGGER.info("List all documents with id = 'parent_1' "); try {/* ww w .j a va 2 s .c om*/ SolrQuery query = new SolrQuery(); query.add("q", "*:*"); query.add("fq", "id:parent_1"); QueryResponse response = solrClient.query(query); SolrDocumentList results = response.getResults(); for (SolrDocument doc : results) { LOGGER.info("Found document with id = '" + doc.get("id") + "'"); } LOGGER.info("Found a total of " + results.getNumFound() + " documents having id='parent_1'."); } catch (SolrServerException | IOException ex) { LOGGER.log(Level.SEVERE, "Exception while querying index!", ex); } }
From source file:com.seajas.search.attender.service.search.SolrSearchService.java
License:Open Source License
/** * {@inheritDoc}/* w ww .j av a 2 s . co m*/ */ @Override public List<SearchResult> performSearch(final String query, final Date startDate, final Date endDate, final Map<String, String> parameters, final Integer maxResults, final String taxonomyLanguage) { List<SearchResult> results = new ArrayList<SearchResult>(maxResults); SolrQuery solrQuery = new SolrQuery(); SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); // Combine the shards into a Solr-acceptable list String shardList = ""; for (String shard : shards) shardList += (shardList.length() > 0 ? "," : "") + shard; solrQuery.setQuery(query); solrQuery.setRows(maxResults); solrQuery.setParam("shards", shardList); solrQuery.addFilterQuery("dcterms_created:[" + dateFormatter.format(startDate) + " TO " + dateFormatter.format(endDate) + "]"); // Construct a field list for highlighting String[] fieldList = new String[(searchLanguages.size() * 2) + 2]; fieldList[0] = "content"; fieldList[1] = "title"; for (int i = 2, j = 0; i < fieldList.length; i += 2, j++) { fieldList[i] = "content-" + searchLanguages.get(j); fieldList[i + 1] = "title-" + searchLanguages.get(j); } // Enable highlighting for the content (and leaving the title for now) solrQuery.setHighlight(true); solrQuery.setHighlightSnippets(2); solrQuery.setParam("hl.fl", fieldList); solrQuery.setParam("f.title.hl.fragsize", "0"); solrQuery.setParam("f.content.hl.fragsize", "100"); for (String language : searchLanguages) { solrQuery.setParam("f.title-" + language + ".hl.fragsize", "0"); solrQuery.setParam("f.content-" + language + ".hl.fragsize", "100"); } for (Entry<String, String> parameter : parameters.entrySet()) { if (parameter.getKey().equalsIgnoreCase("dcterms_coverage") || parameter.getKey().equalsIgnoreCase("dcterms_format")) solrQuery.addFilterQuery(parameter.getKey() + ":(" + parameter.getValue() + ")"); else if (parameter.getKey().equalsIgnoreCase("dcterms_type")) solrQuery.addFilterQuery("-" + parameter.getKey() + ":(" + parameter.getValue() + ")"); else solrQuery.addFilterQuery(parameter.getKey() + ":\"" + parameter.getValue() + "\""); } try { QueryResponse response = solrServer.query(solrQuery); Iterator<SolrDocument> iterator = response.getResults().iterator(); for (int i = 0; i < maxResults && iterator.hasNext(); i++) { SolrDocument document = iterator.next(); // Retrieve the (potentially) highlighted summary String id = (String) document.getFieldValue("id"); String language = (String) document.getFieldValue("dcterms_language"); String author = (String) document.getFieldValue("author"); String sourceId = null; // Simply take the last source ID if (document.getFieldValues("dcterms_coverage") != null && document.getFieldValues("dcterms_coverage").size() > 0) for (Object coverageId : document.getFieldValues("dcterms_coverage")) sourceId = coverageId.toString(); String contentField = StringUtils.hasText(language) ? "content-" + language : "content"; String titleField = StringUtils.hasText(language) ? "title-" + language : "title"; String summary = (String) document.getFieldValue(contentField); if (summary.length() > 300) summary = summary.substring(0, 300) + " …"; if (response.getHighlighting().get(id) != null) { List<String> highlightSnippets = response.getHighlighting().get(id).get(contentField); if (highlightSnippets != null && highlightSnippets.size() > 0) { String fragmentPrefixOne = highlightSnippets.get(0).length() > 99 ? " .. " : ""; summary = fragmentPrefixOne + highlightSnippets.get(0) + fragmentPrefixOne; if (highlightSnippets.size() > 1) { String fragmentSuffixTwo = highlightSnippets.get(1).length() > 99 ? " .. " : ""; summary += highlightSnippets.get(1) + fragmentSuffixTwo; } } } results.add(new SearchResult((String) document.get("url"), (String) document.get(titleField), author, sourceId, summary, (Date) document.get("dcterms_created"), (String) document.get("dcterms_alternative"))); } } catch (SolrServerException e) { logger.error("Could not retrieve Solr results for query '" + query + "'", e); } // Now collect and update the source IDs to their actual sources return adjustSourceIds(results, taxonomyLanguage); }
From source file:com.sindicetech.siren.demo.ncpr.NCPRQuery.java
License:Open Source License
/** * A query that shows how to use a custom datatype (uri) *//*from w ww .j a v a 2 s . c o m*/ private SolrQuery getWebsiteQuery() throws QueryNodeException { ConciseQueryBuilder b = new ConciseQueryBuilder(); String q = b.newTwig("DeviceOwner").with(b.newNode("uri(www.sourcelondon.net)").setAttribute("Website")) .toString(); final SolrQuery query = new SolrQuery(); query.setQuery(q); return query; }
From source file:com.sindicetech.siren.demo.ncpr.NCPRQuery.java
License:Open Source License
/** * A query that shows how to use range query on geo-location data (double) *//*from ww w. j a v a 2s . co m*/ private SolrQuery getGeoQuery() throws QueryNodeException { ConciseQueryBuilder b = new ConciseQueryBuilder(); String q = b.newTwig("ChargeDeviceLocation") .with(b.newNode("xsd:double([52 TO 53])").setAttribute("Latitude")) .with(b.newNode("xsd:double([-2 TO 2])").setAttribute("Longitude")).toString(); final SolrQuery query = new SolrQuery(); query.setQuery(q); return query; }
From source file:com.sindicetech.siren.demo.ncpr.NCPRQuery.java
License:Open Source License
/** * A query that shows how to use range query on long numeric value *///from w ww . j a va 2 s .co m private SolrQuery getOutputCurrentQuery() throws QueryNodeException { ConciseQueryBuilder b = new ConciseQueryBuilder(); TwigQuery twig1 = b.newTwig("ChargeDeviceLocation") .with(b.newNode("xsd:double([52 TO 53])").setAttribute("Latitude")) .with(b.newNode("xsd:double([-2 TO 2])").setAttribute("Longitude")); TwigQuery twig2 = b.newTwig("Connector") .with(b.newNode("xsd:long([32 TO *])").setAttribute("RatedOutputCurrent")); String q = b.newBoolean().with(twig1).with(twig2).toString(); final SolrQuery query = new SolrQuery(); query.setQuery(q); return query; }