@@ -11,19 +11,19 @@ public partial interface IAnalyzeRequest
1111 {
1212 ///<summary>The name of the analyzer to use</summary>
1313 [ JsonProperty ( "analyzer" ) ]
14- string Analyzer { get ; set ; }
14+ Union < string , IAnalyzer > Analyzer { get ; set ; }
1515
1616 ///<summary>The name of the normalizer to use</summary>
1717 [ JsonProperty ( "normalizer" ) ]
1818 string Normalizer { get ; set ; }
1919
2020 ///<summary>A collection of character filters to use for the analysis</summary>
2121 [ JsonProperty ( "char_filter" ) ]
22- string [ ] CharFilter { get ; set ; }
22+ AnalyzeCharFilters CharFilter { get ; set ; }
2323
2424 ///<summary>A collection of filters to use for the analysis</summary>
2525 [ JsonProperty ( "filter" ) ]
26- string [ ] Filter { get ; set ; }
26+ AnalyzeTokenFilters Filter { get ; set ; }
2727
2828 ///<summary>Use the analyzer configured for this field (instead of passing the analyzer name)</summary>
2929 [ JsonProperty ( "field" ) ]
@@ -35,7 +35,7 @@ public partial interface IAnalyzeRequest
3535
3636 ///<summary>The name of the tokenizer to use for the analysis</summary>
3737 [ JsonProperty ( "tokenizer" ) ]
38- string Tokenizer { get ; set ; }
38+ Union < string , ITokenizer > Tokenizer { get ; set ; }
3939 }
4040
4141 public partial class AnalyzeRequest
@@ -47,56 +47,84 @@ public AnalyzeRequest(IndexName indices, string textToAnalyze)
4747 }
4848
4949 /// <inheritdoc />
50- public string Analyzer { get ; set ; }
50+ public Union < string , ITokenizer > Tokenizer { get ; set ; }
51+
52+ /// <inheritdoc />
53+ public Union < string , IAnalyzer > Analyzer { get ; set ; }
5154
5255 /// <inheritdoc />
5356 public string Normalizer { get ; set ; }
5457
5558 /// <inheritdoc />
56- public string [ ] CharFilter { get ; set ; }
59+ public AnalyzeCharFilters CharFilter { get ; set ; }
5760
5861 /// <inheritdoc />
59- public string [ ] Filter { get ; set ; }
62+ public AnalyzeTokenFilters Filter { get ; set ; }
6063
6164 /// <inheritdoc />
6265 public Field Field { get ; set ; }
6366
6467 /// <inheritdoc />
6568 public string [ ] Text { get ; set ; }
6669
67- /// <inheritdoc />
68- public string Tokenizer { get ; set ; }
6970 }
7071
7172 [ DescriptorFor ( "IndicesAnalyze" ) ]
7273 public partial class AnalyzeDescriptor
7374 {
74- string IAnalyzeRequest . Analyzer { get ; set ; }
75+ Union < string , ITokenizer > IAnalyzeRequest . Tokenizer { get ; set ; }
76+ Union < string , IAnalyzer > IAnalyzeRequest . Analyzer { get ; set ; }
7577 string IAnalyzeRequest . Normalizer { get ; set ; }
76- string [ ] IAnalyzeRequest . CharFilter { get ; set ; }
77- string [ ] IAnalyzeRequest . Filter { get ; set ; }
78+ AnalyzeCharFilters IAnalyzeRequest . CharFilter { get ; set ; }
79+ AnalyzeTokenFilters IAnalyzeRequest . Filter { get ; set ; }
7880 Field IAnalyzeRequest . Field { get ; set ; }
7981 string [ ] IAnalyzeRequest . Text { get ; set ; }
80- string IAnalyzeRequest . Tokenizer { get ; set ; }
82+
83+ ///<summary>The name of the tokenizer to use for the analysis</summary>
84+ public AnalyzeDescriptor Tokenizer ( string tokenizer ) => Assign ( a => a . Tokenizer = tokenizer ) ;
85+
86+ ///<summary>An inline definition of a tokenizer</summary>
87+ public AnalyzeDescriptor Tokenizer ( Func < AnalyzeTokenizersSelector , ITokenizer > tokenizer ) =>
88+ Assign ( a =>
89+ {
90+ var v = tokenizer ? . Invoke ( new AnalyzeTokenizersSelector ( ) ) ;
91+ if ( v != null ) a . Tokenizer = new Union < string , ITokenizer > ( v ) ;
92+ } ) ;
8193
8294 ///<summary>The name of the analyzer to use</summary>
8395 public AnalyzeDescriptor Analyzer ( string analyser ) => Assign ( a => a . Analyzer = analyser ) ;
8496
8597 ///<summary>The name of the normalizer to use</summary>
8698 public AnalyzeDescriptor Normalizer ( string normalizer ) => Assign ( a => a . Normalizer = normalizer ) ;
8799
100+ ///<summary>An inline definition of an analyzer</summary>
101+ public AnalyzeDescriptor Analyzer ( Func < AnalyzersDescriptor , IAnalyzer > analyzer ) =>
102+ Assign ( a =>
103+ {
104+ var v = analyzer ? . Invoke ( new AnalyzersDescriptor ( ) ) ;
105+ if ( v != null ) a . Analyzer = new Union < string , IAnalyzer > ( v ) ;
106+ } ) ;
107+
88108 ///<summary>A collection of character filters to use for the analysis</summary>
89109 public AnalyzeDescriptor CharFilter ( params string [ ] charFilter ) => Assign ( a => a . CharFilter = charFilter ) ;
90110
91111 ///<summary>A collection of character filters to use for the analysis</summary>
92112 public AnalyzeDescriptor CharFilter ( IEnumerable < string > charFilter ) => Assign ( a => a . CharFilter = charFilter . ToArray ( ) ) ;
93113
114+ ///<summary>A collection of character filters to use for the analysis</summary>
115+ public AnalyzeDescriptor CharFilter ( Func < AnalyzeCharFiltersDescriptor , IPromise < AnalyzeCharFilters > > charFilters ) =>
116+ Assign ( a => a . CharFilter = charFilters ? . Invoke ( new AnalyzeCharFiltersDescriptor ( ) ) ? . Value ) ;
117+
94118 ///<summary>A collection of filters to use for the analysis</summary>
95119 public AnalyzeDescriptor Filter ( params string [ ] filter ) => Assign ( a => a . Filter = filter ) ;
96120
97121 ///<summary>A collection of filters to use for the analysis</summary>
98122 public AnalyzeDescriptor Filter ( IEnumerable < string > filter ) => Assign ( a => a . Filter = filter . ToArray ( ) ) ;
99123
124+ ///<summary>A collection of filters to use for the analysis</summary>
125+ public AnalyzeDescriptor Filter ( Func < AnalyzeTokenFiltersDescriptor , IPromise < AnalyzeTokenFilters > > tokenFilters ) =>
126+ Assign ( a => a . Filter = tokenFilters ? . Invoke ( new AnalyzeTokenFiltersDescriptor ( ) ) ? . Value ) ;
127+
100128 ///<summary>Use the analyzer configured for this field (instead of passing the analyzer name)</summary>
101129 public AnalyzeDescriptor Field ( Field field ) => Assign ( a => a . Field = field ) ;
102130
@@ -109,7 +137,5 @@ public partial class AnalyzeDescriptor
109137 ///<summary>The text on which the analysis should be performed</summary>
110138 public AnalyzeDescriptor Text ( IEnumerable < string > text ) => Assign ( a => a . Text = text . ToArray ( ) ) ;
111139
112- ///<summary>The name of the tokenizer to use for the analysis</summary>
113- public AnalyzeDescriptor Tokenizer ( string tokenizer ) => Assign ( a => a . Tokenizer = tokenizer ) ;
114140 }
115141}
0 commit comments