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

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

Introduction

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

Prototype

public SolrQuery addSort(String field, ORDER order) 

Source Link

Document

Adds a single sort clause to the end of the current sort information.

Usage

From source file:org.phenotips.vocabulary.internal.solr.OrphanetRareDiseaseOntology.java

License:Open Source License

/**
 * Adds dynamic solr query parameters to {@code query}, based on the received {@code rawQuery raw query string},
 * {@code rows the maximum number of results to return}, {@code sort the sorting order}, and {@code customFilter a
 * custom filter}.//from   w w w. ja  v  a 2 s  .  c o m
 *
 * @param rawQuery unprocessed query string
 * @param rows the maximum number of search items to return
 * @param sort the optional sort parameter
 * @param customFilter custom filter for the results
 * @param query a {@link SolrQuery solr query} object
 * @return the updated {@link SolrQuery solr query} object
 */
private SolrQuery addDynamicQueryParam(@Nonnull final String rawQuery, final Integer rows,
        @Nullable final String sort, @Nullable final String customFilter, @Nonnull SolrQuery query) {
    final String queryString = rawQuery.trim();
    final String escapedQuery = ClientUtils.escapeQueryChars(queryString);
    if (StringUtils.isNotBlank(customFilter)) {
        query.setFilterQueries(customFilter);
    }
    query.setQuery(escapedQuery);
    query.set(SpellingParams.SPELLCHECK_Q, queryString);
    final String lastWord = StringUtils.defaultIfBlank(StringUtils.substringAfterLast(escapedQuery, " "),
            escapedQuery) + "*";
    query.set(DisMaxParams.BQ,
            String.format("nameSpell:%1$s^20 defSpell:%1$s^3 text:%1$s^1 textSpell:%1$s^2", lastWord));
    query.setRows(rows);
    if (StringUtils.isNotBlank(sort)) {
        for (final String sortItem : sort.split("\\s*,\\s*")) {
            query.addSort(StringUtils.substringBefore(sortItem, " "),
                    sortItem.endsWith(" desc") || sortItem.startsWith("-") ? ORDER.desc : ORDER.asc);
        }
    }
    return query;
}

From source file:org.springframework.data.solr.core.DefaultQueryParser.java

License:Apache License

/**
 * Append sorting parameters to {@link SolrQuery}
 * /*from   w  w w. j  a v  a 2 s .  c  o  m*/
 * @param solrQuery
 * @param sort
 */
@SuppressWarnings("deprecation")
protected void appendSort(SolrQuery solrQuery, Sort sort) {
    if (sort == null) {
        return;
    }

    for (Order order : sort) {
        // addSort which is to be used instead of addSortField is not available in versions below 4.2.0
        if (VersionUtil.isSolr420Available()) {
            solrQuery.addSort(order.getProperty(), order.isAscending() ? ORDER.asc : ORDER.desc);
        } else {
            solrQuery.addSortField(order.getProperty(), order.isAscending() ? ORDER.asc : ORDER.desc);
        }
    }
}

From source file:org.zaizi.sensefy.api.service.SolrSmartAutoCompleteService.java

License:Open Source License

/**
 * Query a specific Solr core to obtain advanced suggestions ( such as
 * Entity Types or Named entities)/*from  ww w.j a v a 2s . c  o  m*/
 *
 * @param numberOfSuggestions
 * @param core
 * @return
 * @throws SolrServerException
 */
private QueryResponse getSmartSuggestions(String termToComplete, Integer numberOfSuggestions, SolrServer core)
        throws SolrServerException, SolrException, IOException {
    SolrQuery namedEntitiesQuery = new SolrQuery();
    this.buildAutocompleteQuery(namedEntitiesQuery, termToComplete);
    namedEntitiesQuery.addSort(SEMANTIC_SORTING_FIELD, SolrQuery.ORDER.desc);
    namedEntitiesQuery.setRows(numberOfSuggestions);
    QueryResponse namedEntitiesQueryResponse;
    namedEntitiesQuery.setRequestHandler("/suggest");
    namedEntitiesQueryResponse = core.query(namedEntitiesQuery);
    if (namedEntitiesQueryResponse.getResults().getNumFound() == 0) {
        buildSpellcheckQuery(namedEntitiesQuery, termToComplete);
        namedEntitiesQueryResponse = core.query(namedEntitiesQuery);
    }
    return namedEntitiesQueryResponse;
}

From source file:se.nrm.dina.inventory.client.SolrTest.java

public static void testSMTP() throws SolrServerException {

    List<Object[]> list = new ArrayList<>();

    StringBuilder sb = new StringBuilder();
    sb.append("+(ftx:Hymenoptera");
    sb.append(" ht:*Hymenoptera*) + cln:");
    sb.append(262144);/*from  w ww .  ja v a 2s.  c  om*/

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(sb.toString().trim()).addField("ftx").addField("smtp");
    //        solrQuery.setParam("group", true);
    //        solrQuery.setParam("group.field", "ftx");
    solrQuery.addSort("ftx", SolrQuery.ORDER.asc);
    solrQuery.setRows(10000);

    QueryResponse queryResponse = server.query(solrQuery);
    SolrDocumentList documents = queryResponse.getResults();

    Map<String, List<String>> map = new HashMap();

    for (SolrDocument document : documents) {
        //                List<String> textList = (List<String>) document.getFieldValue("text");
        List<String> smtp = (List<String>) document.getFieldValue("smtp"); //id is the uniqueKey field
        String ftx = (String) document.getFieldValue("ftx");

        System.out.println("result :  " + ftx + " --- " + smtp);

        if (map.containsKey(ftx)) {

        } else {
        }

    }

    //        NamedList respNL = queryResponse.getResponse();
    //        NamedList groupInfo = (NamedList) respNL.get("grouped");
    //        NamedList thisGroupInfo = (NamedList) groupInfo.get("ftx");
    //
    //        String fullName;
    //        List<String> smtp;
    //        Integer[] counts;
    //        List<Object> groupData = (List<Object>) thisGroupInfo.get("groups");
    //
    //        NamedList thisGroup;
    //        SolrDocumentList sdl;
    //        SolrDocument document;
    //        for (Object o : groupData) {
    // 
    //            thisGroup = (NamedList) o;
    //            sdl = (SolrDocumentList) thisGroup.get("doclist");
    //            document = sdl.get(0);
    //            fullName = (String) document.getFieldValue("ftx");
    //            smtp = (List<String>) document.getFieldValue("smtp");
    //            
    //            System.out.println("smtp : " + fullName + " ----" + smtp);
    //        }
}