Example usage for org.apache.solr.common.params MultiMapSolrParams addParam

List of usage examples for org.apache.solr.common.params MultiMapSolrParams addParam

Introduction

In this page you can find the example usage for org.apache.solr.common.params MultiMapSolrParams addParam.

Prototype

public static void addParam(String name, String[] vals, Map<String, String[]> map) 

Source Link

Usage

From source file:org.apache.nifi.processors.solr.PutSolrContentStream.java

License:Apache License

private Map<String, String[]> getRequestParams(ProcessContext context, FlowFile flowFile) {
    final Map<String, String[]> paramsMap = new HashMap<>();
    final SortedMap<String, String> repeatingParams = new TreeMap<>();

    for (final Map.Entry<PropertyDescriptor, String> entry : context.getProperties().entrySet()) {
        final PropertyDescriptor descriptor = entry.getKey();
        if (descriptor.isDynamic()) {
            final String paramName = descriptor.getName();
            final String paramValue = context.getProperty(descriptor).evaluateAttributeExpressions(flowFile)
                    .getValue();/*ww  w. j a  va 2 s  .  c o m*/

            if (!paramValue.trim().isEmpty()) {
                if (paramName.matches(REPEATING_PARAM_PATTERN)) {
                    repeatingParams.put(paramName, paramValue);
                } else {
                    MultiMapSolrParams.addParam(paramName, paramValue, paramsMap);
                }
            }
        }
    }

    for (final Map.Entry<String, String> entry : repeatingParams.entrySet()) {
        final String paramName = entry.getKey();
        final String paramValue = entry.getValue();
        final int idx = paramName.lastIndexOf(".");
        MultiMapSolrParams.addParam(paramName.substring(0, idx), paramValue, paramsMap);
    }

    return paramsMap;
}

From source file:org.apache.nifi.processors.solr.RequestParamsUtil.java

License:Apache License

/**
 * Parses a String of request params into a MultiMap.
 *
 * @param requestParams/* w w w.j ava  2s . c om*/
 *          the value of the request params property
 * @return
 */
public static MultiMapSolrParams parse(final String requestParams) {
    final Map<String, String[]> paramsMap = new HashMap<>();
    if (requestParams == null || requestParams.trim().isEmpty()) {
        return new MultiMapSolrParams(paramsMap);
    }

    final String[] params = requestParams.split("[&]");
    if (params == null || params.length == 0) {
        throw new IllegalStateException("Parameters must be in form k1=v1&k2=v2, was" + requestParams);
    }

    for (final String param : params) {
        final String[] keyVal = param.split("=");
        if (keyVal.length != 2) {
            throw new IllegalStateException("Parameter must be in form key=value, was " + param);
        }

        final String key = keyVal[0].trim();
        final String val = keyVal[1].trim();
        MultiMapSolrParams.addParam(key, val, paramsMap);
    }

    return new MultiMapSolrParams(paramsMap);
}