1- // Licensed to Elasticsearch B.V under one or more agreements.
1+ // Licensed to Elasticsearch B.V under one or more agreements.
22// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
33// See the LICENSE file in the project root for more information
44
5- using System . Collections . Generic ;
5+ using System . Collections . Generic ;
66using System . Runtime . Serialization ;
7+ using Elasticsearch . Net . Utf8Json ;
78
89namespace Nest
910{
@@ -20,6 +21,16 @@ public interface ICharGroupTokenizer : ITokenizer
2021 /// </summary>
2122 [ DataMember ( Name = "tokenize_on_chars" ) ]
2223 IEnumerable < string > TokenizeOnCharacters { get ; set ; }
24+
25+ /// <summary>
26+ /// The maximum token length. If a token is seen that exceeds this length then
27+ /// it is split at <see cref="MaxTokenLength"/> intervals. Defaults to `255`.
28+ /// <para />
29+ /// Valid in Elasticsearch 7.9.0+
30+ /// </summary>
31+ [ DataMember ( Name = "max_token_length" ) ]
32+ [ JsonFormatter ( typeof ( NullableStringIntFormatter ) ) ]
33+ int ? MaxTokenLength { get ; set ; }
2334 }
2435
2536 /// <inheritdoc cref="ICharGroupTokenizer" />
@@ -31,6 +42,9 @@ public class CharGroupTokenizer : TokenizerBase, ICharGroupTokenizer
3142
3243 /// <inheritdoc cref="ICharGroupTokenizer.TokenizeOnCharacters" />
3344 public IEnumerable < string > TokenizeOnCharacters { get ; set ; }
45+
46+ /// <inheritdoc cref="ICharGroupTokenizer.MaxTokenLength" />
47+ public int ? MaxTokenLength { get ; set ; }
3448 }
3549
3650 /// <inheritdoc cref="ICharGroupTokenizer" />
@@ -40,6 +54,7 @@ public class CharGroupTokenizerDescriptor
4054 protected override string Type => CharGroupTokenizer . TokenizerType ;
4155
4256 IEnumerable < string > ICharGroupTokenizer . TokenizeOnCharacters { get ; set ; }
57+ int ? ICharGroupTokenizer . MaxTokenLength { get ; set ; }
4358
4459 /// <inheritdoc cref="ICharGroupTokenizer.TokenizeOnCharacters" />
4560 public CharGroupTokenizerDescriptor TokenizeOnCharacters ( params string [ ] characters ) =>
@@ -48,5 +63,9 @@ public CharGroupTokenizerDescriptor TokenizeOnCharacters(params string[] charact
4863 /// <inheritdoc cref="ICharGroupTokenizer.TokenizeOnCharacters" />
4964 public CharGroupTokenizerDescriptor TokenizeOnCharacters ( IEnumerable < string > characters ) =>
5065 Assign ( characters , ( a , v ) => a . TokenizeOnCharacters = v ) ;
66+
67+ /// <inheritdoc cref="ICharGroupTokenizer.MaxTokenLength" />
68+ public CharGroupTokenizerDescriptor MaxTokenLength ( int ? maxTokenLength ) =>
69+ Assign ( maxTokenLength , ( a , v ) => a . MaxTokenLength = v ) ;
5170 }
5271}
0 commit comments