docs: @Override
  	public SqlElasticSearchRequestBuilder explain() throws SqlParseException {
          Hint scrollHint = null;
          for (Hint hint : select.getHints()) {
              if (hint.getType() == HintType.USE_SCROLL) {
                  scrollHint = hint;
                  break;
              }
          }
          if (scrollHint != null && scrollHint.getParams()[0] instanceof String) {
              return new SqlElasticSearchRequestBuilder(new SearchScrollRequestBuilder(client, SearchScrollAction.INSTANCE, (String) scrollHint.getParams()[0]).setScroll(new TimeValue((Integer) scrollHint.getParams()[1])));
          }
  
  		/*
  		zhongshu-comment 6.1.1.5这个版本和elastic6.1.1这个分支用的是这一行代码
  		但是在本地调试时我的client没有实例化，并没有去连es，所以这行代码会报空指针
  		那就将这行注释掉吧，以后就用下面那行
  		 */
  //		this.request = client.prepareSearch();
  
  		/*
  		zhongshu-comment  6.2.4.1这个版本和master_zhongshu_dev_01用的是这一行代码，虽然client为null，但是下面这行代码并不会报空指针
  							为了在本地调试、执行下文的那些代码获得es的dsl，所以就使用这行代码，暂时将上面哪一行注释掉，上线的时候记得替换掉
  		变量request是es搜索请求对象，调用的是es的api，SearchRequestBuilder是es的原生api
  		 */
          this.request = new SearchRequestBuilder(client, SearchAction.INSTANCE);
  		setIndicesAndTypes();
  
  		//zhongshu-comment 将Select对象中封装的sql token信息转换并传到成员变量es搜索请求对象request中
  		setFields(select.getFields());
  
  		setWhere(select.getWhere());
  		setSorts(select.getOrderBys());
  		setLimit(select.getOffset(), select.getRowCount());
  
          //
          if (scrollHint != null) {
              if (!select.isOrderdSelect())
                  request.addSort(FieldSortBuilder.DOC_FIELD_NAME, SortOrder.ASC);
              request.setSize((Integer) scrollHint.getParams()[0]).setScroll(new TimeValue((Integer) scrollHint.getParams()[1]));
          } else {
              request.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
          }
          updateRequestWithIndexAndRoutingOptions(select, request);
  		updateRequestWithHighlight(select, request);
  		updateRequestWithCollapse(select, request);
  		updateRequestWithPostFilter(select, request);
  		updateRequestWithStats(select, request);
  		SqlElasticSearchRequestBuilder sqlElasticRequestBuilder = new SqlElasticSearchRequestBuilder(request);
  
  		return sqlElasticRequestBuilder;
  	}