/** * "foo" returns null * "{!prefix f=myfield}yes" returns type="prefix",f="myfield",v="yes" * "{!prefix f=myfield v=$p}" returns type="prefix",f="myfield",v=params.get("p") */ public static SolrParams getLocalParams(String txt, SolrParams params) throws ParseException { if (txt==null || !txt.startsWith(LOCALPARAM_START)) { return null; } Map<String,String> localParams = new HashMap<String,String>(); int start = QueryParsing.parseLocalParams(txt, 0, localParams, params); String val; if (start >= txt.length()) { // if the rest of the string is empty, check for "v" to provide the value val = localParams.get(V); val = val==null ? "" : val; } else { val = txt.substring(start); } localParams.put(V,val); return new MapSolrParams(localParams); }
int end = QueryParsing.parseLocalParams(qs, start, nestedLocalParams, getParams());