@@ -25,6 +25,15 @@ public interface INGramTokenFilter : ITokenFilter
2525 [ DataMember ( Name = "min_gram" ) ]
2626 [ JsonFormatter ( typeof ( NullableStringIntFormatter ) ) ]
2727 int ? MinGram { get ; set ; }
28+
29+ /// <summary>
30+ /// Emits original token when set to `true`. Defaults to `false`.
31+ /// <para />
32+ /// Available in Elasticsearch 7.8.0+
33+ /// </summary>
34+ [ DataMember ( Name = "preserve_original" ) ]
35+ [ JsonFormatter ( typeof ( NullableStringBooleanFormatter ) ) ]
36+ bool ? PreserveOriginal { get ; set ; }
2837 }
2938
3039 /// <inheritdoc />
@@ -37,6 +46,9 @@ public NGramTokenFilter() : base("ngram") { }
3746
3847 /// <inheritdoc />
3948 public int ? MinGram { get ; set ; }
49+
50+ /// <inheritdoc />
51+ public bool ? PreserveOriginal { get ; set ; }
4052 }
4153
4254 /// <inheritdoc />
@@ -48,10 +60,16 @@ public class NGramTokenFilterDescriptor
4860
4961 int ? INGramTokenFilter . MinGram { get ; set ; }
5062
51- /// <inheritdoc />
63+ bool ? INGramTokenFilter . PreserveOriginal { get ; set ; }
64+
65+ /// <inheritdoc cref="INGramTokenFilter.MinGram" />
5266 public NGramTokenFilterDescriptor MinGram ( int ? minGram ) => Assign ( minGram , ( a , v ) => a . MinGram = v ) ;
5367
54- /// <inheritdoc />
68+ /// <inheritdoc cref="INGramTokenFilter.MaxGram" />
5569 public NGramTokenFilterDescriptor MaxGram ( int ? maxGram ) => Assign ( maxGram , ( a , v ) => a . MaxGram = v ) ;
70+
71+ /// <inheritdoc cref="INGramTokenFilter.PreserveOriginal" />
72+ public NGramTokenFilterDescriptor PreserveOriginal ( bool ? preserveOriginal = true ) =>
73+ Assign ( preserveOriginal , ( a , v ) => a . PreserveOriginal = v ) ;
5674 }
5775}
0 commit comments