List of usage examples for org.apache.solr.common.params MultiMapSolrParams addParam
public static void addParam(String name, String[] vals, Map<String, String[]> map)
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); }