@@ -35,6 +35,14 @@ public interface ISplitProcessor : IProcessor
35
35
/// </summary>
36
36
[ DataMember ( Name = "target_field" ) ]
37
37
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 ; }
38
46
}
39
47
40
48
/// <inheritdoc cref="SplitProcessor" />
@@ -51,6 +59,9 @@ public class SplitProcessor : ProcessorBase, ISplitProcessor
51
59
52
60
/// <inheritdoc />
53
61
public Field TargetField { get ; set ; }
62
+
63
+ /// <inheritdoc />
64
+ public bool ? PreserveTrailing { get ; set ; }
54
65
protected override string Name => "split" ;
55
66
}
56
67
@@ -65,6 +76,7 @@ public class SplitProcessorDescriptor<T>
65
76
bool ? ISplitProcessor . IgnoreMissing { get ; set ; }
66
77
string ISplitProcessor . Separator { get ; set ; }
67
78
Field ISplitProcessor . TargetField { get ; set ; }
79
+ bool ? ISplitProcessor . PreserveTrailing { get ; set ; }
68
80
69
81
/// <inheritdoc cref="SplitProcessor.Field" />
70
82
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
85
97
86
98
/// <inheritdoc cref="SplitProcessor.IgnoreMissing" />
87
99
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 ) ;
88
103
}
89
104
}
0 commit comments