public string GetMapping(string index)
        {
            string         mapping = "";
            StringResponse resStr  = null;

            try
            {
                resStr = client.IndicesGetMapping <StringResponse>(index);
                var resObj = JObject.Parse(resStr.Body);
                mapping = resObj[index]["mappings"][index].ToString();
            }
            catch (Exception ex)
            {
                if (resStr != null)
                {
                    LogUtil.LogInfo(logger, resStr.DebugInformation, nodeId);
                }
                LogUtil.LogError(logger, ex.ToString(), nodeId);
            }

            return(mapping);
        }
        /// <summary>
        /// Get mapping.
        /// </summary>
        /// <param name="type">Type name.</param>
        /// <returns>Current mapping.</returns>
        protected FieldDefinitionList GetMapping(String type)
        {
            ElasticsearchResponse <DynamicResponse> response;
            FieldDefinition     fieldDefinition;
            FieldDefinitionList fieldDefinitions;
            String fieldName, mappingJson;

            String[] splitDataType, fieldProperties, splitFields;

            fieldDefinitions = null;
            response         = _client.IndicesGetMapping <DynamicResponse>(IndexName, type);
            CheckResponse(response);
            if (response.Body.IsNotNull() &&
                (response.Body.Count > 0))
            {
                fieldDefinitions = new FieldDefinitionList();
                mappingJson      = (String)(response.Body.Values.ElementAt(0));
                mappingJson      = mappingJson.Substring(mappingJson.IndexOf('{') + 1);
                mappingJson      = mappingJson.Substring(mappingJson.IndexOf('{') + 1);
                mappingJson      = mappingJson.Substring(mappingJson.IndexOf('{') + 1);
                mappingJson      = mappingJson.Substring(mappingJson.IndexOf("properties") + 1);
                mappingJson      = mappingJson.Substring(mappingJson.IndexOf('{') + 1);

                //// If Elasticsearch 2.1 is used run next line.
                //mappingJson = mappingJson.Substring(mappingJson.IndexOf('{') + 1);

                splitFields = mappingJson.Split('}');

                foreach (String fieldMappingJson in splitFields)
                {
                    if (fieldMappingJson.IsNotEmpty() &&
                        (2 <= fieldMappingJson.IndexOf(':')))
                    {
                        fieldName = fieldMappingJson.Substring(1, fieldMappingJson.IndexOf(':') - 2);
                        if (fieldName[0] == '"')
                        {
                            fieldName = fieldName.Substring(1);
                        }

                        fieldDefinition       = new FieldDefinition();
                        fieldDefinition.Index = IndexName;
                        fieldDefinition.Json  = fieldMappingJson + "}";
                        if (fieldDefinition.Json[0] == ',')
                        {
                            fieldDefinition.Json = fieldDefinition.Json.Substring(1);
                        }

                        fieldDefinition.Name = fieldName;
                        fieldDefinition.Type = type;
                        fieldProperties      = fieldMappingJson.Substring(fieldMappingJson.IndexOf('{') + 1).Split(',');
                        foreach (String fieldProperty in fieldProperties)
                        {
                            splitDataType    = fieldProperty.Split(':');
                            splitDataType[0] = splitDataType[0].Substring(1, splitDataType[0].Length - 2);
                            switch (splitDataType[0])
                            {
                            case "format":
                                fieldDefinition.Format = splitDataType[1].Substring(1, splitDataType[1].Length - 2);
                                break;

                            case "index":
                                fieldDefinition.FieldIndex = splitDataType[1].Substring(1, splitDataType[1].Length - 2);
                                break;

                            case "tree_levels":
                                fieldDefinition.TreeLevel = splitDataType[1].WebParseInt32();
                                break;

                            case "type":
                                fieldDefinition.DataType = splitDataType[1].Substring(1, splitDataType[1].Length - 2);
                                break;
                            }
                        }

                        fieldDefinitions.Add(fieldDefinition);
                    }
                }
            }

            return(fieldDefinitions);
        }