docs: private synchronized static StopRecognition init(String key, KV<String, StopRecognition> kv, boolean reload) {
  		StopRecognition stopRecognition = kv.getV();
  
  		if (stopRecognition != null) {
  			if (reload) {
  				stopRecognition.clear();
  			} else {
  				return stopRecognition;
  			}
  		} else {
  			stopRecognition = new StopRecognition();
  		}
  
  		try {
  			LOG.debug("begin init FILTER !");
  			long start = System.currentTimeMillis();
  			String temp = null;
  			String[] strs = null;
  			try (BufferedReader br = IOUtil.getReader(PathToStream.stream(kv.getK()), "UTF-8")) {
  				while ((temp = br.readLine()) != null) {
  					if (StringUtil.isNotBlank(temp)) {
  						strs = temp.split("\t");
  
  						if (strs.length == 1) {
  							stopRecognition.insertStopWords(strs[0]);
  						} else {
  							switch (strs[1]) {
  							case "nature":
  								stopRecognition.insertStopNatures(strs[0]);
  								break;
  							case "regex":
  								stopRecognition.insertStopRegexes(strs[0]);
  								break;
  							default:
  								stopRecognition.insertStopWords(strs[0]);
  								break;
  							}
  						}
  
  					}
  				}
  			}
  			LOG.info("load stop use time:" + (System.currentTimeMillis() - start) + " path is : " + kv.getK());
  			kv.setV(stopRecognition);
  			return stopRecognition;
  		} catch (Exception e) {
  			LOG.error("Init Stop library error :" + e.getMessage() + ", path: " + kv.getK());
  			STOP.remove(key);
  			return null;
  		}
  	}