private FacetMetaData ParseMetaData(JProperty facetMetaDataObject, JsonReader reader, JsonSerializer serializer)
        {
            var facetMetaData = new FacetMetaData()
            {
                Facets = new List <Facet>()
            };
            var name         = facetMetaDataObject.Name;
            var data         = (JObject)facetMetaDataObject.Value;
            var type         = data.Value <string>("_type");
            var propertyName = this.GetFacetPropertyName(type);


            facetMetaData.Field   = name;
            facetMetaData.Type    = type;
            facetMetaData.Missing = data.Value <int>("missing");
            if (new[] { "statistical" }.Contains(type))
            {
                var f = this.ParseFacet(data, type, reader, serializer);
                if (f != null)
                {
                    facetMetaData.Facets.Add(f);
                }
            }
            else
            {
                var facetsArray = (JArray)(data.Property(propertyName).Value);
                foreach (var facet in facetsArray)
                {
                    var f = this.ParseFacet(facet, type, reader, serializer);
                    if (f != null)
                    {
                        facetMetaData.Facets.Add(f);
                    }
                }
            }
            return(facetMetaData);
        }
        private FacetMetaData ParseMetaData(JProperty facetMetaDataObject, JsonReader reader, JsonSerializer serializer)
        {
            var facetMetaData = new FacetMetaData() { Facets = new List<Facet>() };
            var name = facetMetaDataObject.Name;
            var data = (JObject)facetMetaDataObject.Value;
            var type = data.Value<string>("_type");
            var propertyName = this.GetFacetPropertyName(type);

            facetMetaData.Field = name;
            facetMetaData.Type = type;
            facetMetaData.Missing = data.Value<int>("missing");
            if (new[] { "statistical" }.Contains(type))
            {
                var f = this.ParseFacet(data, type, reader, serializer);
                if (f != null)
                    facetMetaData.Facets.Add(f);
            }
            else
            {
                var facetsArray = (JArray)(data.Property(propertyName).Value);
                foreach (var facet in facetsArray)
                {
                    var f = this.ParseFacet(facet, type, reader, serializer);
                    if (f != null)
                        facetMetaData.Facets.Add(f);
                }
            }
            return facetMetaData;
        }