Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 15 additions & 3 deletions src/Nest/Analysis/TokenFilters/PatternReplaceTokenFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ namespace Nest
/// </summary>
public interface IPatternReplaceTokenFilter : ITokenFilter
{
/// <summary>
/// The flags for the regular expression
/// </summary>
[DataMember(Name ="flags")]
string Flags { get; set; }

/// <summary>
/// The regular expression
/// </summary>
Expand All @@ -25,6 +31,9 @@ public class PatternReplaceTokenFilter : TokenFilterBase, IPatternReplaceTokenFi
{
public PatternReplaceTokenFilter() : base("pattern_replace") { }

/// <inheritdoc />
public string Flags { get; set; }

/// <inheritdoc />
public string Pattern { get; set; }

Expand All @@ -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; }

/// <inheritdoc />
/// <inheritdoc cref="IPatternReplaceTokenFilter.Flags" />
public PatternReplaceTokenFilterDescriptor Flags(string flags) => Assign(flags, (a, v) => a.Flags = v);

/// <inheritdoc cref="IPatternReplaceTokenFilter.Pattern" />
public PatternReplaceTokenFilterDescriptor Pattern(string pattern) => Assign(pattern, (a, v) => a.Pattern = v);

/// <inheritdoc />
/// <inheritdoc cref="IPatternReplaceTokenFilter.Replacement" />
public PatternReplaceTokenFilterDescriptor Replacement(string replacement) => Assign(replacement, (a, v) => a.Replacement = v);
}
}
6 changes: 4 additions & 2 deletions src/Tests/Tests/Analysis/TokenFilters/TokenFilterTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ public class MarkerTests : TokenFilterAssertionBase<MarkerTests>

public override string Name => "marker";
}

public class MarkerWithPatternsTests : TokenFilterAssertionBase<MarkerWithPatternsTests>
{
public override FuncTokenFilters Fluent => (n, tf) => tf
Expand Down Expand Up @@ -493,16 +493,18 @@ public class PatternReplaceTests : TokenFilterAssertionBase<PatternReplaceTests>
{
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"
};
Expand Down