コード例 #1
0
		public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
		{
			var filter = new TermsQueryDescriptor<object>();
			ITermsQuery f = filter;
			if (reader.TokenType != JsonToken.StartObject)
				return null;

			var depth = reader.Depth;
			while (reader.Read() && reader.Depth >= depth && reader.Value != null)
			{
				var property = reader.Value as string;
				switch (property)
				{
					case "boost":
						reader.Read();
						f.Boost = reader.Value as double?;
						break;
					case "_name":
						f.Name = reader.ReadAsString();
						break;
					default:
						f.Field = property;
						//reader.Read();
						ReadTerms(f, reader, serializer);
						//reader.Read();
						break;
				}
			}
			return filter;

		}
コード例 #2
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var         filter = new TermsQueryDescriptor <object, object>();
            ITermsQuery f      = filter;

            if (reader.TokenType != JsonToken.StartObject)
            {
                return(null);
            }

            var depth = reader.Depth;

            while (reader.Read() && reader.Depth >= depth && reader.Value != null)
            {
                var property = reader.Value as string;
                switch (property)
                {
                case "disable_coord":
                    reader.Read();
                    f.DisableCoord = reader.Value as bool?;
                    break;

                case "minimum_should_match":
                    f.MinimumShouldMatch = reader.ReadAsString();
                    break;

                case "boost":
                    reader.Read();
                    f.Boost = reader.Value as double?;
                    break;

                default:
                    f.Field = property;
                    //reader.Read();
                    ReadTerms(f, reader);
                    //reader.Read();
                    break;
                }
            }
            return(filter);
        }