Example usage for org.apache.solr.common.util NamedList toString

List of usage examples for org.apache.solr.common.util NamedList toString

Introduction

In this page you can find the example usage for org.apache.solr.common.util NamedList toString.

Prototype

@Override
    public String toString() 

Source Link

Usage

From source file:com.sindicetech.siren.solr.facet.SirenFacetProcessorFactory.java

License:Open Source License

/**
 * /*w w  w .j  a va 2 s .  c  om*/
 * Taken from {@link AddSchemaFieldsUpdateProcessorFactory}'s parseTypeMappings().
 * 
 * @param args
 * @return
 */
@SuppressWarnings("rawtypes")
private List<TypeMapping> parseTypeMappings(NamedList args) {
    List<TypeMapping> typeMappings = new ArrayList<TypeMapping>();
    List typeMappingsParams = args.getAll(TYPE_MAPPING_PARAM);
    for (Object typeMappingObj : typeMappingsParams) {
        if (null == typeMappingObj) {
            throw new SolrException(SERVER_ERROR, "'" + TYPE_MAPPING_PARAM + "' init param cannot be null");
        }
        if (!(typeMappingObj instanceof NamedList)) {
            throw new SolrException(SERVER_ERROR, "'" + TYPE_MAPPING_PARAM + "' init param must be a <lst>");
        }
        NamedList typeMappingNamedList = (NamedList) typeMappingObj;

        Object fieldTypeObj = typeMappingNamedList.remove(FIELD_TYPE_PARAM);
        if (null == fieldTypeObj) {
            throw new SolrException(SERVER_ERROR,
                    "Each '" + TYPE_MAPPING_PARAM + "' <lst/> must contain a '" + FIELD_TYPE_PARAM + "' <str>");
        }
        if (!(fieldTypeObj instanceof CharSequence)) {
            throw new SolrException(SERVER_ERROR, "'" + FIELD_TYPE_PARAM + "' init param must be a <str>");
        }
        if (null != typeMappingNamedList.get(FIELD_TYPE_PARAM)) {
            throw new SolrException(SERVER_ERROR, "Each '" + TYPE_MAPPING_PARAM
                    + "' <lst/> may contain only one '" + FIELD_TYPE_PARAM + "' <str>");
        }
        String fieldType = fieldTypeObj.toString();

        Object maxFieldSizeObj = typeMappingNamedList.remove(MAX_FIELD_SIZE_PARAM);
        if (maxFieldSizeObj != null) {
            if (!(maxFieldSizeObj instanceof Integer)) {
                throw new SolrException(SERVER_ERROR, "'" + FIELD_TYPE_PARAM + "' init param must be an <int>");
            }
        }

        Collection<String> valueClasses = typeMappingNamedList.removeConfigArgs(VALUE_CLASS_PARAM);
        if (valueClasses.isEmpty()) {
            throw new SolrException(SERVER_ERROR, "Each '" + TYPE_MAPPING_PARAM
                    + "' <lst/> must contain at least one '" + VALUE_CLASS_PARAM + "' <str>");
        }
        typeMappings.add(new TypeMapping(fieldType, (Integer) maxFieldSizeObj, valueClasses));

        if (0 != typeMappingNamedList.size()) {
            throw new SolrException(SERVER_ERROR, "Unexpected '" + TYPE_MAPPING_PARAM + "' init sub-param(s): '"
                    + typeMappingNamedList.toString() + "'");
        }
        args.remove(TYPE_MAPPING_PARAM);
    }

    checkMappingExists(typeMappings, FacetDatatype.BOOLEAN.xsdDatatype);
    checkMappingExists(typeMappings, FacetDatatype.DOUBLE.xsdDatatype);
    checkMappingExists(typeMappings, FacetDatatype.LONG.xsdDatatype);
    checkMappingExists(typeMappings, FacetDatatype.STRING.xsdDatatype);

    return typeMappings;
}

From source file:com.sindicetech.siren.solr.handler.SirenUpdateRequestHandler.java

License:Open Source License

private List<FieldMapper> parseMappings(NamedList args, String paramName) {
    List<FieldMapper> mappers = new ArrayList<>();
    List params = args.getAll(paramName);

    if (!params.isEmpty()) {
        for (Object mapping : params) {
            NamedList mappingNamedList = this.validateParameter(paramName, mapping);
            String fieldType = this.parseFieldTypeParameter(mappingNamedList);
            String path = this.parseStringParameter(mappingNamedList, PATH_PARAM);
            String type = this.parseStringParameter(mappingNamedList, TYPE_PARAM);

            if ((path == null && type == null) || (path != null && type != null)) {
                throw new SolrException(SERVER_ERROR, "Each mapping must contain either a '" + PATH_PARAM
                        + "' or a '" + TYPE_PARAM + "' sub-parameter");
            }/* w ww .java2  s  . c  o m*/

            if (mappingNamedList.size() != 0) {
                throw new SolrException(SERVER_ERROR, "Unexpected '" + paramName + "' sub-parameter(s): '"
                        + mappingNamedList.toString() + "'");
            }

            if (path == null) {
                mappers.add(new TypeFieldMapper(type, fieldType));
            } else {
                mappers.add(new PathFieldMapper(path, fieldType));
            }
        }
        args.remove(paramName);
    }

    return mappers;
}

From source file:jp.co.atware.solr.geta.GETAssocComponent.java

License:Apache License

/**
 * GETAssoc?????<code>NamedList</code>???????
 * /*from   ww  w .jav a2 s .co m*/
 * @param inputStream GETAssoc??
 * @return <code>NamedList</code>?
 * @throws FactoryConfigurationError
 * @throws IOException
 */
protected NamedList<Object> convertResult(InputStream inputStream)
        throws FactoryConfigurationError, IOException {
    NamedList<Object> result = new NamedList<Object>();
    LinkedList<NamedList<Object>> stack = new LinkedList<NamedList<Object>>();
    stack.push(result);
    try {
        XMLStreamReader xml = XMLInputFactory.newInstance().createXMLStreamReader(inputStream);
        while (xml.hasNext()) {
            switch (xml.getEventType()) {
            case XMLStreamConstants.START_ELEMENT:
                NamedList<Object> element = new NamedList<Object>();
                stack.peek().add(xml.getName().toString(), element);
                stack.push(element);
                for (int i = 0; i < xml.getAttributeCount(); i++) {
                    String name = xml.getAttributeName(i).toString();
                    String value = xml.getAttributeValue(i);
                    ValueOf valueOf = valueTransMap.get(name);
                    if (valueOf != null) {
                        try {
                            element.add(name, valueOf.toValue(value));
                        } catch (NumberFormatException e) {
                            element.add(name, value);
                        }
                    } else {
                        element.add(name, value);
                    }
                }
                break;
            case XMLStreamConstants.END_ELEMENT:
                stack.pop();
                break;
            default:
                break;
            }
            xml.next();

        }
        xml.close();
    } catch (XMLStreamException e) {
        throw new IOException(e);
    }

    LOG.debug(result.toString());
    return result;
}

From source file:org.qi4j.index.solr.internal.SolrEntityQueryMixin.java

License:Open Source License

@Override
public Iterable<EntityReference> findEntities(Class<?> resultType,
        @Optional Specification<Composite> whereClause, @Optional OrderBy[] orderBySegments,
        @Optional Integer firstResult, @Optional Integer maxResults, Map<String, Object> variables)
        throws EntityFinderException {
    try {/*  www  . j ava  2 s  .  c o m*/
        QuerySpecification expr = (QuerySpecification) whereClause;

        SolrServer server = solr.getSolrServer();

        NamedList<Object> list = new NamedList<Object>();

        list.add("q", expr.getQuery());
        list.add("rows", maxResults != 0 ? maxResults : 10000);
        list.add("start", firstResult);

        if (orderBySegments != null && orderBySegments.length > 0) {
            for (OrderBy orderBySegment : orderBySegments) {
                String propName = ((Member) orderBySegment.getPropertyFunction().getAccessor()).getName()
                        + "_for_sort";
                String order = orderBySegment.order() == OrderBy.Order.ASCENDING ? "asc" : "desc";
                list.add("sort", propName + " " + order);

            }
        }

        SolrParams solrParams = SolrParams.toSolrParams(list);
        logger.debug("Search:" + list.toString());

        QueryResponse query = server.query(solrParams);

        SolrDocumentList results = query.getResults();

        List<EntityReference> references = new ArrayList<EntityReference>(results.size());
        for (SolrDocument result : results) {
            references.add(EntityReference.parseEntityReference(result.getFirstValue("id").toString()));
        }
        return references;

    } catch (SolrServerException e) {
        throw new EntityFinderException(e);
    }
}

From source file:peltomaa.sukija.QueryResponsePrinter.java

License:Open Source License

public static final void print(PrintStream out, QueryResponse response) {
    NamedList<Object> nl = response.getHeader();
    out.println(nl.toString());

    TermsResponse tr = response.getTermsResponse();
    Map<String, List<TermsResponse.Term>> tmap = tr.getTermMap();
    Iterator<Map.Entry<String, List<TermsResponse.Term>>> i = tmap.entrySet().iterator();
    while (i.hasNext()) {
        Map.Entry<String, List<TermsResponse.Term>> e = i.next();
        out.println(e.getKey());//from  w w  w .j av  a2  s.  c  om
        for (TermsResponse.Term m : e.getValue()) {
            out.println(m.getTerm() + " " + m.getFrequency());
        }
    }
    out.println("=========================");
    List<TermsResponse.Term> tterms = tr.getTerms("text");

    for (TermsResponse.Term t : tr.getTerms("text")) {
        //  out.println (t.getTerm());
    }

}

From source file:se.streamsource.streamflow.web.infrastructure.index.SolrEntityQueryMixin.java

License:Apache License

public Iterable<EntityReference> findEntities(NamedQueryDescriptor queryDescriptor, String resultType,
        @Optional Map<String, Object> variables, @Optional OrderBy[] orderBySegments,
        @Optional Integer firstResult, @Optional Integer maxResults) throws EntityFinderException {
    try {//from  ww  w. j  a  va 2  s  .  co m
        SolrServer server = solr.getSolrServer("sf-core");

        NamedList list = new NamedList();

        String queryString = queryDescriptor.compose(variables, orderBySegments, firstResult, maxResults);
        list.add("q", queryString);
        list.add("rows", maxResults != 0 ? maxResults : 10000);
        list.add("start", firstResult);

        if (orderBySegments != null && orderBySegments.length > 0) {
            for (OrderBy orderBySegment : orderBySegments) {
                String propName = orderBySegment.propertyReference().propertyName() + "_for_sort";
                String order = orderBySegment.order() == OrderBy.Order.ASCENDING ? "asc" : "desc";
                list.add("sort", propName + " " + order);

            }
        }

        SolrParams solrParams = SolrParams.toSolrParams(list);
        logger.debug("Search:" + list.toString());

        QueryResponse query = server.query(solrParams);

        SolrDocumentList results = query.getResults();

        List<EntityReference> references = new ArrayList<EntityReference>(results.size());
        for (SolrDocument result : results) {
            references.add(EntityReference.parseEntityReference(result.getFirstValue("id").toString()));
        }
        return references;

    } catch (SolrServerException e) {
        throw new EntityFinderException(e);
    }
}