Skip to content

Commit 0cb91fe

Browse files
Add ignore_empty_value to set processor (#4915) (#4933)
Relates: elastic/elasticsearch#57030 Co-authored-by: Russ Cam <russ.cam@elastic.co>
1 parent d37b8af commit 0cb91fe

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/Nest/Ingest/Processors/SetProcessor.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,16 @@ public interface ISetProcessor : IProcessor
3636
/// </summary>
3737
[DataMember(Name = "override")]
3838
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; }
3949
}
4050

4151
/// <inheritdoc cref="ISetProcessor" />
@@ -47,6 +57,8 @@ public class SetProcessor : ProcessorBase, ISetProcessor
4757
public object Value { get; set; }
4858
/// <inheritdoc />
4959
public bool? Override { get; set; }
60+
/// <inheritdoc />
61+
public bool? IgnoreEmptyValue { get; set; }
5062
protected override string Name => "set";
5163
}
5264

@@ -58,6 +70,7 @@ public class SetProcessorDescriptor<T> : ProcessorDescriptorBase<SetProcessorDes
5870
Field ISetProcessor.Field { get; set; }
5971
object ISetProcessor.Value { get; set; }
6072
bool? ISetProcessor.Override { get; set; }
73+
bool? ISetProcessor.IgnoreEmptyValue { get; set; }
6174

6275
/// <inheritdoc cref="ISetProcessor.Field"/>
6376
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
7184

7285
/// <inheritdoc cref="ISetProcessor.Override"/>
7386
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);
7491
}
7592
}

0 commit comments

Comments
 (0)