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

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

Introduction

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

Prototype

public ModifiableSolrParams add(String name, String... val) 

Source Link

Document

Add the given values to any existing name

Usage

From source file:com.frank.search.solr.core.DefaultQueryParser.java

License:Apache License

private void processGroupOptions(SolrQuery solrQuery, Query query) {

    GroupOptions groupOptions = query.getGroupOptions();

    if (groupOptions == null || (CollectionUtils.isEmpty(groupOptions.getGroupByFields())
            && CollectionUtils.isEmpty(groupOptions.getGroupByFunctions())
            && CollectionUtils.isEmpty(groupOptions.getGroupByQueries()))) {
        return;/*from  w ww. j  a  v a  2 s.  c o  m*/
    }

    solrQuery.set(GroupParams.GROUP, true);
    solrQuery.set(GroupParams.GROUP_MAIN, groupOptions.isGroupMain());
    solrQuery.set(GroupParams.GROUP_FORMAT, "grouped");

    if (!CollectionUtils.isEmpty(groupOptions.getGroupByFields())) {
        for (Field field : groupOptions.getGroupByFields()) {
            solrQuery.add(GroupParams.GROUP_FIELD, field.getName());
        }
    }

    if (!CollectionUtils.isEmpty(groupOptions.getGroupByFunctions())) {
        for (Function function : groupOptions.getGroupByFunctions()) {
            String functionFragment = createFunctionFragment(function, 0);
            setObjectNameOnGroupQuery(query, function, functionFragment);
            solrQuery.add(GroupParams.GROUP_FUNC, functionFragment);
        }
    }

    if (!CollectionUtils.isEmpty(groupOptions.getGroupByQueries())) {
        for (Query groupQuery : groupOptions.getGroupByQueries()) {
            String queryFragment = getQueryString(groupQuery);
            setObjectNameOnGroupQuery(query, groupQuery, queryFragment);
            solrQuery.add(GroupParams.GROUP_QUERY, queryFragment);
        }
    }

    if (groupOptions.getSort() != null) {

        for (Order order : groupOptions.getSort()) {
            solrQuery.add(GroupParams.GROUP_SORT,
                    order.getProperty().trim() + " " + (order.isAscending() ? ORDER.asc : ORDER.desc));
        }
    }

    if (groupOptions.getCachePercent() > 0) {
        solrQuery.add(GroupParams.GROUP_CACHE_PERCENTAGE, String.valueOf(groupOptions.getCachePercent()));
    }

    if (groupOptions.getLimit() != null && groupOptions.getLimit() >= 0) {
        solrQuery.set(GroupParams.GROUP_LIMIT, groupOptions.getLimit());
    }

    if (groupOptions.getOffset() != null && groupOptions.getOffset() >= 0) {
        solrQuery.set(GroupParams.GROUP_OFFSET, groupOptions.getOffset());
    }

    solrQuery.set(GroupParams.GROUP_TOTAL_COUNT, groupOptions.isTotalCount());
    solrQuery.set(GroupParams.GROUP_FACET, groupOptions.isGroupFacets());
    solrQuery.set(GroupParams.GROUP_TRUNCATE, groupOptions.isTruncateFacets());
}

From source file:com.frank.search.solr.core.DefaultQueryParser.java

License:Apache License

/**
 * Append highlighting parameters to// w  ww  .  j av a2 s . co  m
 * {@link org.apache.solr.client.solrj.SolrQuery}
 *
 * @param solrQuery
 * @param query
 */
protected void processHighlightOptions(SolrQuery solrQuery, HighlightQuery query) {
    if (query.hasHighlightOptions()) {
        HighlightOptions highlightOptions = query.getHighlightOptions();
        solrQuery.setHighlight(true);
        if (!highlightOptions.hasFields()) {
            solrQuery.addHighlightField(HighlightOptions.ALL_FIELDS.getName());
        } else {
            for (Field field : highlightOptions.getFields()) {
                solrQuery.addHighlightField(field.getName());
            }
            for (FieldWithHighlightParameters fieldWithHighlightParameters : highlightOptions
                    .getFieldsWithHighlightParameters()) {
                addPerFieldHighlightParameters(solrQuery, fieldWithHighlightParameters);
            }
        }
        for (HighlightParameter option : highlightOptions.getHighlightParameters()) {
            addOptionToSolrQuery(solrQuery, option);
        }
        if (highlightOptions.hasQuery()) {
            solrQuery.add(HighlightParams.Q, getQueryString(highlightOptions.getQuery()));
        }
    }
}

From source file:com.frank.search.solr.core.DefaultQueryParser.java

License:Apache License

private void addOptionToSolrQuery(SolrQuery solrQuery, QueryParameter option) {
    if (option != null && StringUtils.isNotBlank(option.getName())) {
        solrQuery.add(option.getName(), conversionService.convert(option.getValue(), String.class));
    }/*from  www. ja  v a  2  s.c om*/
}

From source file:com.frank.search.solr.core.DefaultQueryParser.java

License:Apache License

private void addFieldSpecificParameterToSolrQuery(SolrQuery solrQuery, Field field, QueryParameter option) {
    if (option != null && field != null && StringUtils.isNotBlank(option.getName())) {
        if (option.getValue() == null) {
            solrQuery.add(createPerFieldOverrideParameterName(field, option.getName()), (String) null);
        } else {/*from w ww . j a  v  a2 s.c  o  m*/
            String value = option.getValue().toString();
            if (conversionService.canConvert(option.getValue().getClass(), String.class)) {
                value = conversionService.convert(option.getValue(), String.class);
            }
            solrQuery.add(createPerFieldOverrideParameterName(field, option.getName()), value);
        }
    }
}

From source file:com.frank.search.solr.core.QueryParserBase.java

License:Apache License

/**
 * Set request handler parameter for//  www  .  ja  v  a 2  s. c  o  m
 * {@link org.apache.solr.client.solrj.SolrQuery}
 *
 * @param solrQuery
 * @param requestHandler
 */
protected void appendRequestHandler(SolrQuery solrQuery, String requestHandler) {
    if (StringUtils.isNotBlank(requestHandler)) {
        solrQuery.add(CommonParams.QT, requestHandler);
    }
}

From source file:com.gisgraphy.domain.geoloc.service.fulltextsearch.spell.SpellCheckerIndexer.java

License:Open Source License

public boolean buildIndex(SpellCheckerDictionaryNames spellCheckerDictionaryName) {
    if (!SpellCheckerConfig.isEnabled()) {
        return false;
    }//from  w  ww  .j  a  va2 s  .c om

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQueryType(Constants.SolrQueryType.spellcheck.toString());
    solrQuery.add(Constants.SPELLCHECKER_DICTIONARY_NAME_PARAMETER, spellCheckerDictionaryName.toString());
    solrQuery.add(Constants.SPELLCHECKER_BUILD_PARAMETER, "true");
    solrQuery.add(Constants.SPELLCHECKER_ENABLED_PARAMETER, "true");
    solrQuery.setQuery("spell");
    try {
        QueryResponse response = solrClient.getServer().query(solrQuery);
        if (response.getStatus() != 0) {
            logger.error("Indexing dictionary " + spellCheckerDictionaryName.name() + " fails");
            return false;
        }
        logger.info("Successfully indexing dictionary " + spellCheckerDictionaryName.name());
        return true;

    } catch (Exception e) {
        logger.error(
                "An error has occured when indexing spellchecker " + spellCheckerDictionaryName + " : " + e);
        return false;
    }

}

From source file:com.gisgraphy.domain.geoloc.service.fulltextsearch.spell.SpellCheckerIndexerTest.java

License:Open Source License

@Test
public void testThatSpellCheckerShouldNotAcceptAnInexistingSpellCheckerDictionaryName() {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQueryType(Constants.SolrQueryType.spellcheck.toString());
    solrQuery.add(Constants.SPELLCHECKER_DICTIONARY_NAME_PARAMETER, "notExistingInSolrConfig.xml");
    solrQuery.add(Constants.SPELLCHECKER_BUILD_PARAMETER, "true");
    solrQuery.add(Constants.SPELLCHECKER_ENABLED_PARAMETER, "true");
    solrQuery.setQuery("spell");
    try {//from   w  w  w .j a v a 2  s .  c o m
        QueryResponse response = solrClient.getServer().query(solrQuery);
        if (response.getStatus() != 0) {
            fail("Status should not be 0 when the name of the dictionnary name is not defined in solrConfig.xml");
        }
        fail("dictionnary name that are not defined in solrConfig.xml should not be accepted");
    } catch (Exception e) {
        logger.error(e);
    }

}

From source file:com.idealista.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);/*www . ja  va 2s.co  m*/
    }
    if (fq != null) {
        List<String> filterQueries = this.getFilterQueries(fq);
        for (String filterQuery : filterQueries) {
            query.addFilterQuery(filterQuery);
        }
    }

    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.setSort(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.liferay.portal.search.solr.internal.SolrIndexSearcher.java

License:Open Source License

protected void addFacets(SolrQuery solrQuery, SearchContext searchContext) {
    Map<String, Facet> facets = searchContext.getFacets();

    for (Facet facet : facets.values()) {
        if (facet.isStatic()) {
            continue;
        }//  ww w  . j  a v  a2 s. com

        FacetConfiguration facetConfiguration = facet.getFacetConfiguration();

        _facetProcessor.processFacet(solrQuery, facet);

        String facetSort = FacetParams.FACET_SORT_COUNT;

        String order = facetConfiguration.getOrder();

        if (order.equals("OrderValueAsc")) {
            facetSort = FacetParams.FACET_SORT_INDEX;
        }

        solrQuery.add("f." + facetConfiguration.getFieldName() + ".facet.sort", facetSort);
    }

    solrQuery.setFacetLimit(-1);
}

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 w w w.  j  a  va 2 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);
  }
}