public static Map<String, Float> parseFieldBoosts(String boostsStr) {
		if (boostsStr == null || boostsStr.length() < 3)
			return null;
		
		// the field boosts are in the format of "field1:boost1,field2:boost2,field3:boost3..."
		ArrayList<String> fieldList = StringUtil.stringToStringList(boostsStr, 
				StringUtil.getRegExDelimiter(ConfigProperties.FIELD_SEPARATOR));
		if (fieldList == null || fieldList.size() == 0)
			return null;
		
		HashMap<String, Float> boostMap = new HashMap<String, Float>();
		for (String fieldStr : fieldList) {
			String[] nameValuePair = fieldStr.split(StringUtil.getRegExDelimiter(ConfigProperties.NAME_VALUE_SEPARATOR));
			if (nameValuePair != null && nameValuePair.length == 2) {
				try {
					float boost = Float.parseFloat(nameValuePair[1].trim());
					if (boost > 0)
						boostMap.put(nameValuePair[0].trim(), boost);
				} catch (Exception e) {
					// skip this entry
				}
			}
		}
		
		return boostMap;
	}