Example usage for org.apache.solr.client.solrj SolrQuery SolrQuery

List of usage examples for org.apache.solr.client.solrj SolrQuery SolrQuery

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj SolrQuery SolrQuery.

Prototype

public SolrQuery() 

Source Link

Usage

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) + " &hellip;";

            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;
}