@@ -35,6 +35,14 @@ public interface ISplitProcessor : IProcessor
3535 /// </summary>
3636 [ DataMember ( Name = "target_field" ) ]
3737 Field TargetField { get ; set ; }
38+
39+ /// <summary>
40+ /// Preserves empty trailing fields, if any.
41+ /// <para />
42+ /// Available in Elasticsearch 7.6.0+.
43+ /// </summary>
44+ [ DataMember ( Name = "preserve_trailing" ) ]
45+ bool ? PreserveTrailing { get ; set ; }
3846 }
3947
4048 /// <inheritdoc cref="SplitProcessor" />
@@ -51,6 +59,9 @@ public class SplitProcessor : ProcessorBase, ISplitProcessor
5159
5260 /// <inheritdoc />
5361 public Field TargetField { get ; set ; }
62+
63+ /// <inheritdoc />
64+ public bool ? PreserveTrailing { get ; set ; }
5465 protected override string Name => "split" ;
5566 }
5667
@@ -65,6 +76,7 @@ public class SplitProcessorDescriptor<T>
6576 bool ? ISplitProcessor . IgnoreMissing { get ; set ; }
6677 string ISplitProcessor . Separator { get ; set ; }
6778 Field ISplitProcessor . TargetField { get ; set ; }
79+ bool ? ISplitProcessor . PreserveTrailing { get ; set ; }
6880
6981 /// <inheritdoc cref="SplitProcessor.Field" />
7082 public SplitProcessorDescriptor < T > Field ( Field field ) => Assign ( field , ( a , v ) => a . Field = v ) ;
@@ -85,5 +97,8 @@ public SplitProcessorDescriptor<T> TargetField(Expression<Func<T, object>> objec
8597
8698 /// <inheritdoc cref="SplitProcessor.IgnoreMissing" />
8799 public SplitProcessorDescriptor < T > IgnoreMissing ( bool ? ignoreMissing = true ) => Assign ( ignoreMissing , ( a , v ) => a . IgnoreMissing = v ) ;
100+
101+ /// <inheritdoc cref="SplitProcessor.PreserveTrailing" />
102+ public SplitProcessorDescriptor < T > PreserveTrailing ( bool ? preserveTrailing = true ) => Assign ( preserveTrailing , ( a , v ) => a . PreserveTrailing = v ) ;
88103 }
89104}
0 commit comments