Skip to content

Commit 2a04493

Browse files
committed
Merge branch 'master' of github.com:elasticsearch/elasticsearch-net
2 parents 45ed63e + 7716ad0 commit 2a04493

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using Newtonsoft.Json;
2+
3+
namespace Nest
4+
{
5+
/// <summary>
6+
/// The pattern_replace char filter allows the use of a regex to manipulate the characters in a string before analysis.
7+
/// </summary>
8+
public class PatternReplaceCharFilter : CharFilterBase
9+
{
10+
public PatternReplaceCharFilter()
11+
: base("pattern_replace")
12+
{
13+
14+
}
15+
16+
[JsonProperty("pattern")]
17+
public string Pattern { get; set; }
18+
19+
[JsonProperty("replacement")]
20+
public string Replacement { get; set; }
21+
}
22+
}

Diff for: src/Nest/Nest.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@
124124
<Compile Include="Domain\Alias\AliasRemoveDescriptor.cs" />
125125
<Compile Include="Domain\Alias\AliasRemoveOperation.cs" />
126126
<Compile Include="Domain\Alias\IAliasAction.cs" />
127+
<Compile Include="Domain\Analysis\CharFilter\PatternReplaceCharFilter.cs" />
127128
<Compile Include="Domain\Bulk\MultiGetDoc.cs" />
128129
<Compile Include="Domain\Connection\ConnectionSettings.cs" />
129130
<Compile Include="Domain\Connection\IConnectionSettings.cs" />

Diff for: src/Tests/Nest.Tests.Integration/Indices/IndicesTests.cs

+6-2
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public void GetIndexSettingsComplex()
5454

5555
settings.Analysis.CharFilters.Add("char1", new HtmlStripCharFilter());
5656
settings.Analysis.CharFilters.Add("char2", new MappingCharFilter{ Mappings = new []{"ph=>f", "qu=>q"}});
57-
57+
settings.Analysis.CharFilters.Add("char3", new PatternReplaceCharFilter { Pattern = "sample(.*)", Replacement = "replacedSample $1" });
5858
settings.Analysis.TokenFilters.Add("tokenfilter1", new EdgeNGramTokenFilter());
5959
settings.Analysis.TokenFilters.Add("tokenfilter2", new SnowballTokenFilter());
6060

@@ -121,7 +121,7 @@ public void GetIndexSettingsComplex()
121121
Assert.True(languageAnalyser.StemExclusionList.Contains("stem2"));
122122
}
123123

124-
Assert.AreEqual(2, r.Settings.Analysis.CharFilters.Count);
124+
Assert.AreEqual(3, r.Settings.Analysis.CharFilters.Count);
125125
{ // assert char filters
126126
Assert.True(r.Settings.Analysis.CharFilters.ContainsKey("char1"));
127127
var filter1 = r.Settings.Analysis.CharFilters["char1"] as HtmlStripCharFilter;
@@ -132,6 +132,10 @@ public void GetIndexSettingsComplex()
132132
Assert.AreEqual(2, filter2.Mappings.Count());
133133
Assert.True(filter2.Mappings.Contains("ph=>f"));
134134
Assert.True(filter2.Mappings.Contains("qu=>q"));
135+
var filter3 = r.Settings.Analysis.CharFilters["char3"] as PatternReplaceCharFilter;
136+
Assert.NotNull(filter3);
137+
Assert.AreEqual("sample(.*)", filter3.Pattern);
138+
Assert.AreEqual("replacedSample $1", filter3.Replacement);
135139
}
136140

137141
Assert.AreEqual(2, r.Settings.Analysis.TokenFilters.Count);

0 commit comments

Comments
 (0)