List of usage examples for org.apache.solr.client.solrj SolrQuery setTermsMinCount
public SolrQuery setTermsMinCount(int cnt)
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); } }