List of usage examples for org.apache.solr.client.solrj SolrQuery addSort
public SolrQuery addSort(String field, ORDER order)
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); // } }