code: public static void buildMeta(Writer writer ,String indexType,String indexName, Object params,String action,ClientOptions clientOption,boolean upper7) throws IOException {
  		if(params instanceof Map){
  			buildMapMeta(  writer ,  indexType,  indexName, (Map) params,  action,  clientOption,  upper7);
  			return;
  		}
  		Object id = null;
  		Object parentId = null;
  		Object routing = null;
  		Object esRetryOnConflict = null;
  		Object version = null;
  		Object versionType = null;
  		if(clientOption != null) {
  			ClassUtil.ClassInfo beanClassInfo = ClassUtil.getClassInfo(params.getClass());
  			id = clientOption.getIdField() != null ? BuildTool.getId(params, beanClassInfo, clientOption.getIdField()) : null;
  			parentId = clientOption.getParentIdField() != null ? BuildTool.getParentId(params, beanClassInfo, clientOption.getParentIdField()) : null;
  			routing = clientOption.getRountField() != null ? BuildTool.getRouting(params, beanClassInfo, clientOption.getRountField()) : null;
  			esRetryOnConflict = clientOption.getEsRetryOnConflictField() != null ? BuildTool.getEsRetryOnConflict(params, beanClassInfo,
  									clientOption.getEsRetryOnConflictField()) : null;
  			version = clientOption.getVersionField() != null ? BuildTool.getEsRetryOnConflict(params, beanClassInfo,clientOption.getVersionField()) : null;
  			versionType = clientOption.getVersionTypeField() != null ? BuildTool.getEsRetryOnConflict(params, beanClassInfo,clientOption.getVersionTypeField()) : null;
  		}
  		buildMeta(  writer ,  indexType,  indexName,   params,  action,  id,  parentId,routing,esRetryOnConflict,version,versionType,  upper7);
  	}
docs: String docIdKey,String parentIdKey,String routingKey
  @param writer
  @param indexType
  @param indexName
  @param params
  @param action
  @throws IOException