diff --git a/src/Nest/Analysis/TokenFilters/PatternReplaceTokenFilter.cs b/src/Nest/Analysis/TokenFilters/PatternReplaceTokenFilter.cs index 3a6fe923705..098865984f9 100644 --- a/src/Nest/Analysis/TokenFilters/PatternReplaceTokenFilter.cs +++ b/src/Nest/Analysis/TokenFilters/PatternReplaceTokenFilter.cs @@ -7,6 +7,12 @@ namespace Nest /// public interface IPatternReplaceTokenFilter : ITokenFilter { + /// + /// The flags for the regular expression + /// + [DataMember(Name ="flags")] + string Flags { get; set; } + /// /// The regular expression /// @@ -25,6 +31,9 @@ public class PatternReplaceTokenFilter : TokenFilterBase, IPatternReplaceTokenFi { public PatternReplaceTokenFilter() : base("pattern_replace") { } + /// + public string Flags { get; set; } + /// public string Pattern { get; set; } @@ -39,13 +48,16 @@ public class PatternReplaceTokenFilterDescriptor protected override string Type => "pattern_replace"; string IPatternReplaceTokenFilter.Pattern { get; set; } - string IPatternReplaceTokenFilter.Replacement { get; set; } + string IPatternReplaceTokenFilter.Flags { get; set; } - /// + /// + public PatternReplaceTokenFilterDescriptor Flags(string flags) => Assign(flags, (a, v) => a.Flags = v); + + /// public PatternReplaceTokenFilterDescriptor Pattern(string pattern) => Assign(pattern, (a, v) => a.Pattern = v); - /// + /// public PatternReplaceTokenFilterDescriptor Replacement(string replacement) => Assign(replacement, (a, v) => a.Replacement = v); } } diff --git a/src/Tests/Tests/Analysis/TokenFilters/TokenFilterTests.cs b/src/Tests/Tests/Analysis/TokenFilters/TokenFilterTests.cs index a79ba57bc4c..50483d07e13 100644 --- a/src/Tests/Tests/Analysis/TokenFilters/TokenFilterTests.cs +++ b/src/Tests/Tests/Analysis/TokenFilters/TokenFilterTests.cs @@ -347,7 +347,7 @@ public class MarkerTests : TokenFilterAssertionBase public override string Name => "marker"; } - + public class MarkerWithPatternsTests : TokenFilterAssertionBase { public override FuncTokenFilters Fluent => (n, tf) => tf @@ -493,16 +493,18 @@ public class PatternReplaceTests : TokenFilterAssertionBase { public override FuncTokenFilters Fluent => (n, tf) => tf .PatternReplace(n, t => t + .Flags("CASE_INSENSITIVE") .Pattern(@"(\d|\w)") .Replacement("replacement") ); public override ITokenFilter Initializer => - new PatternReplaceTokenFilter { Pattern = @"(\d|\w)", Replacement = "replacement" }; + new PatternReplaceTokenFilter { Flags = "CASE_INSENSITIVE", Pattern = @"(\d|\w)", Replacement = "replacement" }; public override object Json => new { type = "pattern_replace", + flags = "CASE_INSENSITIVE", pattern = "(\\d|\\w)", replacement = "replacement" };