docs: public String toQueryString() {
  
          StringBuffer result = new StringBuffer(128);
          result.append("?action=search");
          if (getParsedQuery() != null) {
              result.append("&parsedQuery=");
              result.append(CmsEncoder.encodeParameter(getParsedQuery()));
          } else {
              result.append("&query=");
              result.append(CmsEncoder.encodeParameter(getQuery()));
          }
  
          result.append("&matchesPerPage=");
          result.append(getMatchesPerPage());
          result.append("&displayPages=");
          result.append(getDisplayPages());
          result.append("&index=");
          result.append(CmsEncoder.encodeParameter(getIndex()));
  
          Sort sort = getSort();
          if (sort != CmsSearchParameters.SORT_DEFAULT) {
              result.append("&sort=");
              if (sort == CmsSearchParameters.SORT_TITLE) {
                  result.append("title");
              } else if (sort == CmsSearchParameters.SORT_DATE_CREATED) {
                  result.append("date-created");
              } else if (sort == CmsSearchParameters.SORT_DATE_LASTMODIFIED) {
                  result.append("date-lastmodified");
              }
          }
  
          if ((getCategories() != null) && (getCategories().size() > 0)) {
              result.append("&category=");
              Iterator<String> it = getCategories().iterator();
              while (it.hasNext()) {
                  result.append(it.next());
                  if (it.hasNext()) {
                      result.append(',');
                  }
              }
          }
  
          if (getMinDateCreated() > Long.MIN_VALUE) {
              result.append("&minDateCreated=");
              result.append(getMinDateCreated());
          }
          if (getMinDateLastModified() > Long.MIN_VALUE) {
              result.append("&minDateLastModified=");
              result.append(getMinDateLastModified());
          }
          if (getMaxDateCreated() < Long.MAX_VALUE) {
              result.append("&maxDateCreated=");
              result.append(getMaxDateCreated());
          }
          if (getMaxDateLastModified() < Long.MAX_VALUE) {
              result.append("&maxDateLastModified=");
              result.append(getMaxDateLastModified());
          }
  
          if ((getRoots() != null) && (getRoots().size() > 0)) {
              result.append("&searchRoots=");
              Iterator<String> it = getRoots().iterator();
              while (it.hasNext()) {
                  result.append(CmsEncoder.encode(it.next()));
                  if (it.hasNext()) {
                      result.append(',');
                  }
              }
          }
  
          if (isExcerptOnlySearchedFields()) {
              result.append("&excerptOnlySearchedFields=true");
          }
  
          return result.toString();
      }