public override string JsonString()
        {
            var elasticsearchCrudJsonWriter = new ElasticsearchCrudJsonWriter();

            elasticsearchCrudJsonWriter.JsonWriter.WriteStartObject();

            JsonHelper.WriteValue("type", "string", elasticsearchCrudJsonWriter);
            JsonHelper.WriteValue("index_name", _indexName, elasticsearchCrudJsonWriter, _indexNameSet);
            JsonHelper.WriteValue("store", _store, elasticsearchCrudJsonWriter, _storeSet);
            JsonHelper.WriteValue("index", _index.ToString(), elasticsearchCrudJsonWriter, _indexSet);
            JsonHelper.WriteValue("doc_values", _docValues, elasticsearchCrudJsonWriter, _docValuesSet);
            JsonHelper.WriteValue("term_vector", _termVector.ToString(), elasticsearchCrudJsonWriter, _termVectorSet);
            JsonHelper.WriteValue("boost", _boost, elasticsearchCrudJsonWriter, _boostSet);
            JsonHelper.WriteValue("null_value", _nullValue, elasticsearchCrudJsonWriter, _nullValueSet);

            //"norms" : {
            //		"enabled" : false
            //	}
            if (_normsEnabledSet || _normsLoadingSet)
            {
                elasticsearchCrudJsonWriter.JsonWriter.WritePropertyName("norms");
                elasticsearchCrudJsonWriter.JsonWriter.WriteStartObject();
                JsonHelper.WriteValue("enabled", _normsEnabled, elasticsearchCrudJsonWriter, _normsEnabledSet);
                JsonHelper.WriteValue("loading", _normsLoading.ToString(), elasticsearchCrudJsonWriter, _normsLoadingSet);
                elasticsearchCrudJsonWriter.JsonWriter.WriteEndObject();
            }

            JsonHelper.WriteValue("index_options", _indexOptions.ToString(), elasticsearchCrudJsonWriter, _indexOptionsSet);
            JsonHelper.WriteValue("analyzer", _analyzer, elasticsearchCrudJsonWriter, _analyzerSet);
            JsonHelper.WriteValue("index_analyzer", _indexAnalyzer, elasticsearchCrudJsonWriter, _indexAnalyzerSet);
            JsonHelper.WriteValue("search_analyzer", _searchAnalyzer, elasticsearchCrudJsonWriter, _searchAnalyzerSet);
            JsonHelper.WriteValue("include_in_all", _includeInAll, elasticsearchCrudJsonWriter, _includeInAllSet);
            JsonHelper.WriteValue("ignore_above", _ignoreAbove, elasticsearchCrudJsonWriter, _ignoreAboveSet);
            JsonHelper.WriteValue("position_offset_gap", _positionOffsetGap, elasticsearchCrudJsonWriter, _positionOffsetGapSet);

            WriteBaseValues(elasticsearchCrudJsonWriter);

            elasticsearchCrudJsonWriter.JsonWriter.WriteEndObject();
            return(elasticsearchCrudJsonWriter.Stringbuilder.ToString());
        }