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

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

Introduction

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

Prototype

public SolrQuery setFields(String... fields) 

Source Link

Usage

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