Skip to content

Commit 08025cd

Browse files
authored
Add articles_case to elision token filter (#3572)
Closes #3570
1 parent 85cdf95 commit 08025cd

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

src/Nest/Analysis/TokenFilters/ElisionTokenFilter.cs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,42 @@ public interface IElisionTokenFilter : ITokenFilter
1313
/// </summary>
1414
[JsonProperty("articles")]
1515
IEnumerable<string> Articles { get; set; }
16+
17+
/// <summary>
18+
/// Whether articles should be handled case-insensitively. Defaults to <c>false</c>.
19+
/// </summary>
20+
[JsonProperty("articles_case")]
21+
bool? ArticlesCase { get; set; }
1622
}
1723

18-
/// <inheritdoc />
24+
/// <inheritdoc cref="IElisionTokenFilter"/>
1925
public class ElisionTokenFilter : TokenFilterBase, IElisionTokenFilter
2026
{
2127
public ElisionTokenFilter() : base("elision") { }
2228

2329
/// <inheritdoc />
2430
public IEnumerable<string> Articles { get; set; }
31+
32+
/// <inheritdoc />
33+
public bool? ArticlesCase { get; set; }
2534
}
2635

27-
/// <inheritdoc />
36+
/// <inheritdoc cref="IElisionTokenFilter"/>
2837
public class ElisionTokenFilterDescriptor
2938
: TokenFilterDescriptorBase<ElisionTokenFilterDescriptor, IElisionTokenFilter>, IElisionTokenFilter
3039
{
3140
protected override string Type => "elision";
3241

3342
IEnumerable<string> IElisionTokenFilter.Articles { get; set; }
43+
bool? IElisionTokenFilter.ArticlesCase { get; set; }
3444

35-
/// <inheritdoc />
45+
/// <inheritdoc cref="IElisionTokenFilter.Articles"/>
3646
public ElisionTokenFilterDescriptor Articles(IEnumerable<string> articles) => Assign(a => a.Articles = articles);
3747

38-
/// <inheritdoc />
48+
/// <inheritdoc cref="IElisionTokenFilter.Articles"/>
3949
public ElisionTokenFilterDescriptor Articles(params string[] articles) => Assign(a => a.Articles = articles);
50+
51+
/// <inheritdoc cref="IElisionTokenFilter.ArticlesCase"/>
52+
public ElisionTokenFilterDescriptor ArticlesCase(bool? articlesCase = true) => Assign(a => a.ArticlesCase = articlesCase);
4053
}
4154
}

src/Tests/Tests/Analysis/TokenFilters/TokenFilterTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,11 @@ public class EdgeNgramTests : TokenFilterAssertionBase<EdgeNgramTests>
9494

9595
public class ElisionTests : TokenFilterAssertionBase<ElisionTests>
9696
{
97-
public override FuncTokenFilters Fluent => (n, tf) => tf.Elision(n, t => t.Articles("a", "b", "c"));
97+
public override FuncTokenFilters Fluent => (n, tf) => tf.Elision(n, t => t.Articles("a", "b", "c").ArticlesCase());
9898

99-
public override ITokenFilter Initializer => new ElisionTokenFilter { Articles = new[] { "a", "b", "c" } };
99+
public override ITokenFilter Initializer => new ElisionTokenFilter { Articles = new[] { "a", "b", "c" }, ArticlesCase = true };
100100

101-
public override object Json => new { type = "elision", articles = new[] { "a", "b", "c" } };
101+
public override object Json => new { type = "elision", articles = new[] { "a", "b", "c" }, articles_case = true };
102102
public override string Name => "el";
103103
}
104104

0 commit comments

Comments
 (0)