Example usage for org.apache.solr.client.solrj.request LukeRequest setNumTerms

List of usage examples for org.apache.solr.client.solrj.request LukeRequest setNumTerms

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj.request LukeRequest setNumTerms.

Prototype

public void setNumTerms(int count) 

Source Link

Document

the number of terms to return for a given field.

Usage

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

License:Open Source License

private String buildTemplateURL() {

    SolrServer server = SolRUtils.getSolRServer(solrCoreUrl);
    if (server == null) {
        throw new ResourceException(Status.SERVER_ERROR_INTERNAL,
                "Solr core : " + solrCoreUrl + " not reachable");
    }//from   w  w w .j  av  a2  s  .c o m

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

    try {
        String description = "/search?q={searchTerms}&format=json";

        description += addQueryParameter(OpenSearchQuery.START_PAGE, false);
        description += addQueryParameter(OpenSearchQuery.START_INDEX, false);
        description += addQueryParameter(OpenSearchQuery.COUNT, false);
        description += addQueryParameter(OpenSearchQuery.GEO_BOX, false);

        description += addQueryParameter(OpenSearchQuery.LANGUAGE, false);
        description += addQueryParameter(OpenSearchQuery.TIME_START, false);
        description += addQueryParameter(OpenSearchQuery.TIME_END, false);
        description += addQueryParameter(OpenSearchQuery.MODIFIED, false);

        LukeResponse response = request.process(server);
        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());
            if (flags != null && flags.contains(FieldFlag.INDEXED)) {
                indexed = true;
            }
            if (indexed && addToDescription(fieldName)) {
                description += "&amp;" + fieldName + "={ptsc:" + fieldName + "?}";
            }
        }

        return description;
    } 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);
    }

}

From source file:net.hydromatic.optiq.impl.solr.SolrTable.java

License:Apache License

/** Deduces the names and types of a table's columns by reading the first line
 * of a CSV file. *//* w w  w .j  a  v a  2 s.  c  o  m*/
static RelDataType deduceRowType(JavaTypeFactory typeFactory, SolrServer srv, List<SolrFieldType> fieldTypes) {
    final List<RelDataType> types = new ArrayList<RelDataType>();
    names = new ArrayList<String>();

    LukeRequest lukeRequest = new LukeRequest();
    lukeRequest.setNumTerms(1);
    LukeResponse lukeResponse = null;
    try {
        lukeResponse = lukeRequest.process(srv);
    } catch (SolrServerException e) {
        e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
    } catch (IOException e) {
        e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
    }

    List<LukeResponse.FieldInfo> sorted = new ArrayList<LukeResponse.FieldInfo>(
            lukeResponse.getFieldInfo().values());

    for (LukeResponse.FieldInfo infoEntry : sorted) {

        SolrFieldType fieldType = SolrFieldType.of(infoEntry.getType().toUpperCase());
        String name = infoEntry.getName();

        final RelDataType type;
        if (fieldType == null) {
            type = typeFactory.createJavaType(String.class);
        } else {
            type = fieldType.toType(typeFactory);
        }
        names.add(name);
        types.add(type);
        fieldTypes.add(fieldType);
    }

    if (names.isEmpty()) {
        names.add("line");
        types.add(typeFactory.createJavaType(String.class));
    }
    return typeFactory.createStructType(Pair.zip(names, types));
}

From source file:net.yacy.cora.federate.solr.connector.SolrServerConnector.java

License:Open Source License

private LukeResponse getIndexBrowser(final boolean showSchema) throws SolrServerException {
    // get all fields contained in index
    final LukeRequest lukeRequest = new LukeRequest();
    lukeRequest.setResponseParser(new XMLResponseParser());
    lukeRequest.setNumTerms(0);
    lukeRequest.setShowSchema(showSchema);
    LukeResponse lukeResponse = null;/*w  w  w.ja  v  a  2s. c  o m*/
    try {
        lukeResponse = lukeRequest.process(this.server);
    } catch (IOException e) {
        throw new SolrServerException(e.getMessage());
    }
    return lukeResponse;
}

From source file:uk.co.flax.biosolr.ontology.search.solr.SolrSearchEngine.java

License:Apache License

@Override
@SuppressWarnings("unchecked")
public List<String> getDynamicFieldNames() throws SearchEngineException {
    List<String> fields = new ArrayList<>();

    LukeRequest request = new LukeRequest();
    request.setNumTerms(0);
    request.setShowSchema(false);/*from  ww  w. j  a  v a  2 s  .  c  o m*/
    try {
        LukeResponse response = request.process(getServer());
        NamedList<Object> flds = (NamedList<Object>) response.getResponse().get("fields");
        if (flds != null) {
            for (Map.Entry<String, Object> field : flds) {
                String name = field.getKey();
                for (Entry<String, Object> prop : (NamedList<Object>) field.getValue()) {
                    if ("dynamicBase".equals(prop.getKey())) {
                        fields.add(name);
                        break;
                    }
                }
            }
        }

    } catch (SolrServerException | IOException e) {
        throw new SearchEngineException(e);
    }

    return fields;
}