private void ReadTerms(ITermsQuery termsQuery, JsonReader reader)
        {
            reader.Read();
            if (reader.TokenType == JsonToken.StartObject)
            {
                var ef    = new ExternalFieldDeclarationDescriptor <object>();
                var depth = reader.Depth;
                while (reader.Read() && reader.Depth >= depth && reader.Value != null)
                {
                    var property = reader.Value as string;
                    switch (property)
                    {
                    case "id":
                        reader.Read();
                        ef._Id = reader.Value as string;
                        break;

                    case "index":
                        reader.Read();
                        ef._Index = reader.Value as string;
                        break;

                    case "type":
                        reader.Read();
                        ef._Type = reader.Value as string;
                        break;

                    case "path":
                        reader.Read();
                        ef._Path = reader.Value as string;
                        break;
                    }
                }
                termsQuery.ExternalField = ef;
            }
            else if (reader.TokenType == JsonToken.StartArray)
            {
                var values = JArray.Load(reader).Values <string>();
                termsQuery.Terms = values;
            }
        }
 private void ReadTerms(ITermsQuery termsQuery, JsonReader reader)
 {
     reader.Read();
     if (reader.TokenType == JsonToken.StartObject)
     {
         var ef = new ExternalFieldDeclarationDescriptor<object>();
         var depth = reader.Depth;
         while (reader.Read() && reader.Depth >= depth && reader.Value != null)
         {
             var property = reader.Value as string;
             switch (property)
             {
                 case "id":
                     reader.Read();
                     ef._Id = reader.Value as string;
                     break;
                 case "index":
                     reader.Read();
                     ef._Index = reader.Value as string;
                     break;
                 case "type":
                     reader.Read();
                     ef._Type = reader.Value as string;
                     break;
                 case "path":
                     reader.Read();
                     ef._Path = reader.Value as string;
                     break;
             }
         }
         termsQuery.ExternalField = ef;
     }
     else if (reader.TokenType == JsonToken.StartArray)
     {
         var values = JArray.Load(reader).Values<string>();
         termsQuery.Terms = values;
     }
 }