File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
src/Nest/Analysis/TokenFilters Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 1+ using System ;
2+ using Newtonsoft . Json ;
3+
4+ namespace Nest
5+ {
6+ /// <summary>
7+ /// The predicate_token_filter token filter takes a predicate script, and removes tokens that do
8+ /// not match the predicate.
9+ /// </summary>
10+ public interface IPredicateTokenFilter : ITokenFilter
11+ {
12+ /// <summary>
13+ /// a predicate script that determines whether or not the current token will
14+ /// be emitted. Note that only inline scripts are supported.
15+ /// </summary>
16+ [ JsonProperty ( "script" ) ]
17+ IScript Script { get ; set ; }
18+ }
19+
20+ public class PredicateTokenFilter : TokenFilterBase , IPredicateTokenFilter
21+ {
22+ public PredicateTokenFilter ( ) : base ( "predicate_token_filter" ) { }
23+
24+ public IScript Script { get ; set ; }
25+ }
26+
27+ /// <inheritdoc cref="IPredicateTokenFilter" />
28+ public class PredicateTokenFilterDescriptor
29+ : TokenFilterDescriptorBase < PredicateTokenFilterDescriptor , IPredicateTokenFilter > , IPredicateTokenFilter
30+ {
31+ protected override string Type => "predicate_token_filter" ;
32+
33+ IScript IPredicateTokenFilter . Script { get ; set ; }
34+
35+ /// <inheritdoc cref="IPredicateTokenFilter.Script" />
36+ public PredicateTokenFilterDescriptor Script ( Func < ScriptDescriptor , IScript > scriptSelector ) =>
37+ Assign ( a => a . Script = scriptSelector ? . Invoke ( new ScriptDescriptor ( ) ) ) ;
38+
39+ /// <inheritdoc cref="IPredicateTokenFilter.Script" />
40+ public PredicateTokenFilterDescriptor Script ( string predicate ) =>
41+ Assign ( a => a . Script = new InlineScript ( predicate ) ) ;
42+ }
43+ }
You can’t perform that action at this time.
0 commit comments