Skip to content

Commit c67dc67

Browse files
committed
Add articles_case to elision token filter (#3572)
Closes #3570 (cherry picked from commit 08025cd) (cherry picked from commit e4ae292)
1 parent 0987576 commit c67dc67

File tree

2 files changed

+21
-8
lines changed

2 files changed

+21
-8
lines changed

src/Nest/Analysis/TokenFilters/ElisionTokenFilter.cs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,44 @@ public interface IElisionTokenFilter : ITokenFilter
1111
/// <summary>
1212
/// Accepts articles setting which is a set of stop words articles
1313
/// </summary>
14-
[DataMember(Name ="articles")]
14+
[DataMember(Name = "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+
[DataMember(Name = "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)