public String getSearchInfo()

in core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/RequestUrl.java [126:185]


  public String getSearchInfo(String URL) throws UnsupportedEncodingException {
    List<String> info = new ArrayList<String>();
    String keyword = "";
    Map<String, String> mapRequest = RequestUrl.uRLRequest(URL);
    if (mapRequest.get("search") != null) {
      try {
        keyword = mapRequest.get("search");

        keyword = URLDecoder.decode(keyword.replaceAll("%(?![0-9a-fA-F]{2})", "%25"), "UTF-8");
        if (keyword.contains("%2b") || keyword.contains("%20") || keyword.contains("%25")) {
          keyword = keyword.replace("%2b", " ");
          keyword = keyword.replace("%20", " ");
          keyword = keyword.replace("%25", " ");
        }

        keyword = keyword.replaceAll("[-+^:,*_\"]", " ").replace("\\", " ").replaceAll("\\s+", " ").trim();

      } catch (UnsupportedEncodingException e) {
        LOG.error(mapRequest.get("search"), e);
      }
      if (!"".equals(keyword)) {
        info.add(keyword);
      }

    }

    if (mapRequest.get("ids") != null && mapRequest.get("values") != null) {
      String id_raw = URLDecoder.decode(mapRequest.get("ids"), "UTF-8");
      String value_raw = URLDecoder.decode(mapRequest.get("values"), "UTF-8");
      String[] ids = id_raw.split(":");
      String[] values = value_raw.split(":");

      int a = ids.length;
      int b = values.length;
      int l = a < b ? a : b;

      for (int i = 0; i < l; i++) {
        if (ids[i].equals("collections") || ids[i].equals("measurement") || ids[i].equals("sensor") || ids[i].equals("platform") || ids[i].equals("variable") || ids[i].equals("spatialcoverage")) {
          try {
            values[i] = values[i].replaceAll("%(?![0-9a-fA-F]{2})", "%25");
            if (!URLDecoder.decode(values[i], "UTF-8").equals(keyword) && !URLDecoder.decode(values[i], "UTF-8").equals("")) {
              String item = URLDecoder.decode(values[i], "UTF-8").trim();
              if (item.contains("%2b") || item.contains("%20") || item.contains("%25")) {
                item = item.replace("%2b", " ");
                item = item.replace("%20", " ");
                item = item.replace("%25", " ");
              }
              item = item.replaceAll("[-+^:,*_\"]", " ").replace("\\", " ").replaceAll("\\s+", " ").trim();
              info.add(item);
            }
          } catch (Exception e) {
            LOG.error(values[i], e);
          }
        }

      }
    }

    return String.join(",", info);
  }