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

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

Introduction

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

Prototype

public SolrQuery setTermsMinCount(int cnt) 

Source Link

Usage

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

License:Apache License

protected void appendTermsOptionsToSolrQuery(TermsOptions options, SolrQuery solrQuery) {
    solrQuery.setTerms(true);//from   ww  w .  j a  va2 s .  co m
    if (options.getLimit() >= 0) {
        solrQuery.setTermsLimit(options.getLimit());
    }
    if (options.getMaxCount() >= -1) {
        solrQuery.setTermsMaxCount(options.getMaxCount());
    }
    if (options.getMinCount() >= 0) {
        solrQuery.setTermsMinCount(options.getMinCount());
    }
    if (StringUtils.hasText(options.getPrefix())) {
        solrQuery.setTermsPrefix(options.getPrefix());
    }
    if (StringUtils.hasText(options.getRegex())) {
        solrQuery.setTermsRegex(options.getRegex());
    }
    if (options.getRegexFlag() != null) {
        solrQuery.setTermsRegexFlag(options.getRegexFlag().toString().toLowerCase());
    }
    if (options.getSort() != null) {
        solrQuery.setTermsSortString(options.getSort().toString().toLowerCase());
    }
    if (options.getUpperBoundTerm() != null) {
        solrQuery.setTermsUpper(options.getUpperBoundTerm().getTerm());
        solrQuery.setTermsUpperInclusive(options.getUpperBoundTerm().isInclude());
    }
    if (options.getLowerBoundTerm() != null) {
        solrQuery.setTermsUpper(options.getLowerBoundTerm().getTerm());
        solrQuery.setTermsUpperInclusive(options.getLowerBoundTerm().isInclude());
    }
    if (!options.isRaw()) {
        solrQuery.setTermsRaw(options.isRaw());
    }

}

From source file:fr.cnes.sitools.metacatalogue.resources.opensearch.OpensearchDescribeResource.java

License:Open Source License

/**
 * Create a description for the metacatalogue containing all the request parameters, their types and enumeration
 * /*from   ww w. j  a  va  2  s . com*/
 * @return a description for the metacatalogue
 */
private Describe createDescribe() {
    Describe describe = new Describe();
    SolrServer server = SolRUtils.getSolRServer(solrCoreUrl);
    if (server == null) {
        throw new ResourceException(Status.SERVER_ERROR_INTERNAL,
                "Solr core : " + solrCoreUrl + " not reachable");
    }

    LukeRequest request = new LukeRequest();
    // request.setNumTerms(maxTopTerms);

    try {
        List<Filter> filters = new ArrayList<Filter>();
        LukeResponse response = request.process(server);
        int numDocs = response.getNumDocs();

        Map<String, LukeResponse.FieldInfo> fields = response.getFieldInfo();

        for (Entry<String, LukeResponse.FieldInfo> field : fields.entrySet()) {
            LukeResponse.FieldInfo fieldInfo = field.getValue();
            String fieldName = fieldInfo.getName();

            boolean indexed = false;

            EnumSet<FieldFlag> flags = FieldInfo.parseFlags(fieldInfo.getSchema());
            indexed = (flags != null && flags.contains(FieldFlag.INDEXED));

            if (indexed && addToDescription(fieldName)) {

                // make a terms query to get the top terms
                SolrQuery query = new SolrQuery();
                query.setRequestHandler("/terms");
                query.setTerms(true);
                query.addTermsField(fieldName);
                query.setTermsLimit(maxTopTerms);
                query.setTermsMinCount(1);

                QueryRequest termsRequest = new QueryRequest(query);
                TermsResponse termsResponse = termsRequest.process(server).getTermsResponse();

                List<Term> terms = termsResponse.getTerms(fieldName);

                Filter filter = new Filter();
                filter.setId(fieldName);
                filter.setTitle(fieldName);
                if (canBeCategorised(terms)) {
                    filter.setType(FilterType.enumeration);
                    filter.setPopulation(numDocs);
                    filter.setSon(createSons(terms));
                } else {
                    filter.setType(getFilterType(fieldInfo.getType()));
                }
                filters.add(filter);
            }
        }
        describe.setFilters(filters);
        return describe;
    } catch (SolrServerException e) {
        throw new ResourceException(Status.SERVER_ERROR_INTERNAL, e.getMessage(), e);
    } catch (IOException e) {
        throw new ResourceException(Status.SERVER_ERROR_INTERNAL, e.getMessage(), e);
    }
}