@@ -36,6 +36,16 @@ public interface ISetProcessor : IProcessor
36
36
/// </summary>
37
37
[ DataMember ( Name = "override" ) ]
38
38
bool ? Override { get ; set ; }
39
+
40
+ /// <summary>
41
+ /// If <c>true</c> and value is a template snippet that evaluates to null or the
42
+ /// empty string, the processor quietly exits without modifying the document.
43
+ /// Defaults to <c>false</c>.
44
+ /// <para />
45
+ /// Valid in Elasticsearch 7.9.0+
46
+ /// </summary>
47
+ [ DataMember ( Name = "ignore_empty_value" ) ]
48
+ bool ? IgnoreEmptyValue { get ; set ; }
39
49
}
40
50
41
51
/// <inheritdoc cref="ISetProcessor" />
@@ -47,6 +57,8 @@ public class SetProcessor : ProcessorBase, ISetProcessor
47
57
public object Value { get ; set ; }
48
58
/// <inheritdoc />
49
59
public bool ? Override { get ; set ; }
60
+ /// <inheritdoc />
61
+ public bool ? IgnoreEmptyValue { get ; set ; }
50
62
protected override string Name => "set" ;
51
63
}
52
64
@@ -58,6 +70,7 @@ public class SetProcessorDescriptor<T> : ProcessorDescriptorBase<SetProcessorDes
58
70
Field ISetProcessor . Field { get ; set ; }
59
71
object ISetProcessor . Value { get ; set ; }
60
72
bool ? ISetProcessor . Override { get ; set ; }
73
+ bool ? ISetProcessor . IgnoreEmptyValue { get ; set ; }
61
74
62
75
/// <inheritdoc cref="ISetProcessor.Field"/>
63
76
public SetProcessorDescriptor < T > Field ( Field field ) => Assign ( field , ( a , v ) => a . Field = v ) ;
@@ -71,5 +84,9 @@ public SetProcessorDescriptor<T> Field<TValue>(Expression<Func<T, TValue>> objec
71
84
72
85
/// <inheritdoc cref="ISetProcessor.Override"/>
73
86
public SetProcessorDescriptor < T > Override ( bool ? @override = true ) => Assign ( @override , ( a , v ) => a . Override = v ) ;
87
+
88
+ /// <inheritdoc cref="ISetProcessor.IgnoreEmptyValue"/>
89
+ public SetProcessorDescriptor < T > IgnoreEmptyValue ( bool ? ignoreEmptyValue = true ) =>
90
+ Assign ( ignoreEmptyValue , ( a , v ) => a . IgnoreEmptyValue = v ) ;
74
91
}
75
92
}
0 commit comments