@@ -134,8 +134,11 @@ private bool WriteNumericDecay(JsonWriter writer, IDecayFunction<double?, double
134
134
private bool WriteDateDecay ( JsonWriter writer , IDecayFunction < DateMath , Time > value , JsonSerializer serializer )
135
135
{
136
136
if ( value == null || value . Field . IsConditionless ( ) ) return false ;
137
- writer . WritePropertyName ( "origin" ) ;
138
- serializer . Serialize ( writer , value . Origin ) ;
137
+ if ( value . Origin != null )
138
+ {
139
+ writer . WritePropertyName ( "origin" ) ;
140
+ serializer . Serialize ( writer , value . Origin ) ;
141
+ }
139
142
writer . WritePropertyName ( "scale" ) ;
140
143
serializer . Serialize ( writer , value . Scale ) ;
141
144
if ( value . Offset != null )
@@ -166,11 +169,11 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
166
169
{
167
170
var jo = JObject . Load ( reader ) ;
168
171
QueryContainer filter = jo . Property ( "filter" ) ? . Value . ToObject < QueryContainer > ( serializer ) ;
169
- double ? weight = jo . Property ( "weight" ) ? . Value . ToObject < double ? > ( ) ; ;
172
+ double ? weight = jo . Property ( "weight" ) ? . Value . ToObject < double ? > ( ) ; ;
170
173
IScoreFunction function = null ;
171
174
foreach ( var prop in jo . Properties ( ) )
172
175
{
173
- switch ( prop . Name )
176
+ switch ( prop . Name )
174
177
{
175
178
case "exp" :
176
179
case "gauss" :
@@ -222,7 +225,7 @@ private IDecayFunction ReadDecayFunction(string type, JObject o, JsonSerializer
222
225
var origin = o . Property ( "origin" ) ? . Value . Type ;
223
226
if ( origin == null ) return null ;
224
227
var subType = "numeric" ;
225
- switch ( origin )
228
+ switch ( origin )
226
229
{
227
230
case JTokenType . String :
228
231
subType = "date" ;
0 commit comments